Le lecteur de données est incompatible avec le modèle spécifié

Je suis en cours d'exécution d'une procédure stockée en l'ajoutant au modèle existant (edmx) par Ajouter--> fonction d'Importation.

J'ai reçu l'erreur suivante.

Le lecteur de données est incompatible avec l' 'dbModel.stored_procedure_Result'. Un membre du "type", 'UID', n'a pas de colonne correspondante dans le lecteur de données avec le même nom.

_Result classe de le Modle est comme suit

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; }
}

Erreur s'est produite sur la ligne de fond de cette classe

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);
}
}
}

Financée procédure est comme suit

ALTER 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

Résultat de la procédure est

UID         SYSTEM_ID     ACTIVE     LEVEL      SYSTEM_CODE     SYSTEM_NAME
1           62           1         LEVEL               CODE           NAME

Certaines études ont suggéré de supprimer le RET déclaration de la procédure stockée, j'ai essayé avec les commentaires de la RET déclaration dans la procédure stockée , mais il n'a pas aidé

Certaines études ont suggéré de vérifier les noms de colonne, je cheked les noms de colonne dans le type complexe , les noms de colonne correspondant exactement à

Certaines études ont suggéré que toutes les colonnes qui sont là dans la _Result classe devrait être RETed de la procédure, mais la _Result classe est générée automatiquement, cependant j'ai essayé de supprimer les deux dernières colonnes, mais il n'a pas aidé..
En outre, le message d'erreur indique que ‘UID’ colonne, mais qui est présent dans la Procédure , la procédure de résultat, _Result classe .

Je suis sentiment que l'erreur est dans quelques références

using System;
using System.Data.Entity;
using System.Data.Entity.Infrastructure;
using System.Data.Entity.Core.Objects;
using Company.Product.Domain.Models;

comme lors de la “mise à Jour modle de base de données”, il jette toujours l'erreur comme
“impossible de convertir le Système.Les données.Objet du Système.Les données.De l'entité.De base.Les objets”

  • UID que la clé primaire et spécifier [Key] comme attribut à l'UID de la propriété
InformationsquelleAutor user3489548 | 2014-06-09