有没有办法在 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.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 识别属性,TEntity[] 实体)在 System.Data.Entity.Migrations.IDbSetExtensions.AddOrUpdate[TEntity](IDbSet`1 集,TEntity[] 实体)