Entity framework 实体框架异常“发现不明确匹配。”

Entity framework 实体框架异常“发现不明确匹配。”,entity-framework,Entity Framework,有没有办法在EntityFramework5.0中使用属性隐藏? 使用新类型隐藏基础属性的位置。 在本例中,对象Id替换为新的int Id public abstract class BaseObject : IFBaseObject { [NotMapped] protected virtual object Id { get; set; } public virtual byte[] RowVersion { get; set; } public abstract

有没有办法在EntityFramework5.0中使用属性隐藏? 使用新类型隐藏基础属性的位置。 在本例中,对象Id替换为新的int Id

public abstract class BaseObject : IFBaseObject {
    [NotMapped]
    protected virtual object Id { get; set; }
    public virtual byte[] RowVersion { get; set; }

public abstract class BaseObjectInt : BaseObject, IFKeyInt {
    [Required]
    [Key]
    public new virtual int Id { set; get; }

 public class MessageRef : BaseObjectInt{
   public virtual string Category { get; set; }
   public virtual string message { get; set; }
}
实体框架模型似乎可以工作。 数据库按预期创建。 但是,EF在添加值时引发反射异常。 **找到不明确的匹配项**

Context.Set<TPoco>().AddOrUpdate(poco);
然后EF可以工作,但我发现泛型会出现其他非EF问题,因为基类型没有Id

如果感兴趣的话,请留下痕迹

在System.RuntimeType.GetPropertyImplString名称、BindingFlags bindingAttr、Binder Binder、类型returnType、类型[]类型、参数修改器[]修饰符处 在System.Type.GetPropertyString名称处,BindingFlags bindingAttr 在System.Linq.Enumerable.c__DisplayClass123.b__11t源x 在System.Linq.Enumerable.where选择Enumerableiterator2.MoveNext 在System.Linq.Enumerable.Aggregate[TSource,TAccumulate]IEnumerable1 source,TAccumulate seed,Func3 func 在System.Data.Entity.Migrations.IDbSetExtensions.AddOrUpdate[TEntity]DbSet1集合中,IEnumerable1 IdentificationProperties,TEntity[]entities
在System.Data.Entity.Migrations.IDbSetExtensions.AddOrUpdate[tenty]IDbSet`1 set,tenty[]entities

中,您不希望将属性隐藏在应用程序的核心。通常你会用泛型来解决这个问题,但我不确定EF是否会更喜欢它。能够对Id值进行通用访问有什么急迫之处?嗨,Gert,我不喜欢使用动态代码访问存储库。我被迫使用动态存储库或动态lambda。动态lambda也不是我最喜欢的方法,因为它构造起来非常麻烦。我已经删除了base属性,但希望使用已知的模式和intellisence支持。现在,我将返回动态调用的泛型存储库。:-令人沮丧的是,我们的POCO的变体模式在EF之外工作得很好。遗憾的是,我们不能向EF类型信息表明,因此没有必要进行反射。顺便说一句,Gert,您的评论可能需要升级才能回答Soonfii,我使用字段而不是属性来回避这个问题。并将ID添加到基本对象。
// protected virtual object Id { get; set; }