有没有办法在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工作,但由于基本类型没有Id,我得到了泛型的其他非EF问题。
感兴趣的痕迹。
at System.RuntimeType.GetPropertyImpl(String name,BindingFlags bindingAttr,Binder binder,Type returnType,Type [] types,ParameterModifier [] modifiers)
在System.Type.GetProperty(String name,BindingFlags bindingAttr)
在System.Linq.Enumerable。&lt;&gt; c__DisplayClass12 3.<CombineSelectors>b__11(TSource x)
at System.Linq.Enumerable.WhereSelectEnumerableIterator
2.MoveNext()
在System.Linq.Enumerable.Aggregate [TSource,TAccumulate](IEnumerable 1 source, TAccumulate seed, Func
3 func)
在System.Data.Entity.Migrations.IDbSetExtensions.AddOrUpdate [TEntity](DbSet 1 set, IEnumerable
1 identifyProperties,TEntity [] entities)
在System.Data.Entity.Migrations.IDbSetExtensions.AddOrUpdate [TEntity](IDbSet`1 set,TEntity [] entities)