Ich führe eine gespeicherte Prozedur durch Hinzufügen in das vorhandene Modell (edmx) durch Hinzufügen -> Funktion Importieren.Der Datenleser ist nicht mit dem angegebenen Modell kompatibel
Ich habe den folgenden Fehler erhalten.
Der Datenleser ist nicht kompatibel mit dem angegebenen 'dbModel.stored_procedure_Result'. Ein Mitglied des Typs 'UID' hat keine entsprechende Spalte im Datenleser mit demselben Namen.
_result Klasse des Modle ist als
public partial class stored_procedure_Result
{
public int UID { get; set; }
public int SYSTEM_ID { get; set; }
public byte ACTIVE { get; set; }
public string LEVEL { get; set; }
public string SYSTEM_CODE { get; set; }
public string SYSTEM_NAME { get; set; }
public Nullable<int> SYSTEM_SUB_TYPE { get; set; }
public Nullable<int> PM_ID { get; set; }
}
Fehler in der unteren Zeile dieser Klasse
using System;
using System.Data.Entity;
using System.Data.Entity.Infrastructure;
using System.Data.Entity.Core.Objects;
using Company.Product.Domain.Models;
namespace Company.Product.Domain.Data
{
public partial class BusinessPartnerDataContext : DbContext
{
public BusinessPartnerDataContext()
: base("name=BusinessPartnerDataContext")
{
}
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
throw new UnintentionalCodeFirstException();
}
public virtual ObjectResult<stored_procedure_Result> stored_procedure(Nullable<int> pCId, Nullable<int> pSystemId, Nullable<bool> pParameterShow, Nullable<bool> pRETActive, Nullable<bool> pAllLevels, Nullable<bool> pSystemSubTypeShow, Nullable<bool> pShowResultSet)
{
((IObjectContextAdapter)this).ObjectContext.MetadataWorkspace.LoadFromAssembly(typeof(stored_procedure_Result).Assembly);
var pCIdParameter = pCId.HasValue ?
new ObjectParameter("pCId", pCId) :
new ObjectParameter("pCId", typeof(int));
var pSystemIdParameter = pSystemId.HasValue ?
new ObjectParameter("pSystemId", pSystemId) :
new ObjectParameter("pSystemId", typeof(int));
var pParameterShowParameter = pParameterShow.HasValue ?
new ObjectParameter("pParameterShow", pParameterShow) :
new ObjectParameter("pParameterShow", typeof(bool));
var pRETActiveParameter = pRETActive.HasValue ?
new ObjectParameter("pRETActive", pRETActive) :
new ObjectParameter("pRETActive", typeof(bool));
var pAllLevelsParameter = pAllLevels.HasValue ?
new ObjectParameter("pAllLevels", pAllLevels) :
new ObjectParameter("pAllLevels", typeof(bool));
var pSystemSubTypeShowParameter = pSystemSubTypeShow.HasValue ?
new ObjectParameter("pSystemSubTypeShow", pSystemSubTypeShow) :
new ObjectParameter("pSystemSubTypeShow", typeof(bool));
var pShowResultSetParameter = pShowResultSet.HasValue ?
new ObjectParameter("pShowResultSet", pShowResultSet) :
new ObjectParameter("pShowResultSet", typeof(bool));
return ((IObjectContextAdapter)this).ObjectContext.ExecuteFunction<stored_procedure_Result>("stored_procedure", pCIdParameter, pSystemIdParameter, pParameterShowParameter, pRETActiveParameter, pAllLevelsParameter, pSystemSubTypeShowParameter, pShowResultSetParameter);
}
}
}
Söréd Verfahren wie
folgt ist aufgetreten folgtALTER PROCEDURE STORED_PROCEDURE
AS
DECLARE @SYSTEMS TABLE (UID int NOT NULL IDENTITY(1,1),
SYSTEM_ID int NOT NULL,
ACTIVE tinyint NOT NULL,
[LEVEL] char(2) NOT NULL,
SYSTEM_CODE char(2) NULL,
SYSTEM_NAME varchar(50) NULL,
pm_ID int NULL,SYSTEM_SUB_TYPE int NULL)
INSERT INTO @SYSTEMS
VALUES (1,
62,
1,
'LEVEL',
'CODE',
'NAME')
SELECT UID,
SYSTEM_ID,
ACTIVE,
LEVEL,
SYSTEM_CODE,
SYSTEM_NAME
FROM @SYSTEMS RETURN 0
Ergebnis der Verfahren ist
noch einige Kleinigkeiten, die RET-Anweisung aus der gespeicherten Prozedur zu entfernen vorgeschlagen habe ich versucht, mit als auch die RET-Anweisung in der gespeicherten Prozedur zu kommentieren, aber es half nicht
Einig Post vorgeschlagen, um die Spaltennamen zu überprüfen Ich habe die Spaltennamen im komplexen Typ geprüft, die Spaltennamen stimmen genau überein
Einige Post vorgeschlagen, dass alle Spalten, die dort sind in der _Result-Klasse RET von der Prozedur, aber die _Result-Klasse wird automatisch generiert werden, aber ich habe versucht, die letzten beiden Spalten zu entfernen, aber es hat nicht geholfen .. Darüber hinaus sagt der Fehler 'UID' Spalte, aber th at ist in Prozedur, Prozessergebnis, _Result-Klasse vorhanden.
ich diesen Fehler fühle mich in einigen Artikeln ist
using System;
using System.Data.Entity;
using System.Data.Entity.Infrastructure;
using System.Data.Entity.Core.Objects;
using Company.Product.Domain.Models;
als wenn die „modle von Datenbank-Update“, wirft es immer Fehler wie „kann nicht System.Data.Object zu System.Data.Entity konvertieren .Core.Objects "
Verwendung UID als Primärschlüssel und geben Sie [Key] als Attribut auf die UID Eigenschaft –