1

有没有办法在 Entity Framework 5.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);

如果我删除基本属性

// protected virtual object Id { get; set; }

然后 EF 工作,但我得到其他非 EF 问题出现与泛型,因为基本类型没有 Id。

感兴趣的情况下的跟踪。

在 System.RuntimeType.GetPropertyImpl(String name, BindingFlags bindingAttr, Binder binder, Type returnType, Type[] types, ParameterModifier[] 修饰符) at System.Type.GetProperty(String name, BindingFlags bindingAttr) at System.Linq.Enumerable。< >c__DisplayClass12 3.<CombineSelectors>b__11(TSource x) at System.Linq.Enumerable.WhereSelectEnumerableIterator2.MoveNext() 在 System.Linq.Enumerable.Aggregate[TSource,TAccumulate](IEnumerable 1 source, TAccumulate seed, Func3 func) 在 System.Data.Entity.Migrations.IDbSetExtensions.AddOrUpdate[TEntity](DbSet 1 set, IEnumerable1 识别属性,TEntity[] 实体)在 System.Data.Entity.Migrations.IDbSetExtensions.AddOrUpdate[TEntity](IDbSet`1 集,TEntity[] 实体)

4

0 回答 0