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; }
}
Entity Framework モデルは機能しているようです。データベースは期待どおりに作成されます。ただし、EF は値を追加するときにリフレクション例外をスローします。**あいまいな一致が見つかりました**
Context.Set<TPoco>().AddOrUpdate(poco);
基本プロパティを削除すると
// protected virtual object Id { get; set; }
その後、EFは機能しますが、基本型にIDがないため、ジェネリックでEF以外の問題が発生します。
興味のある場合のトレース。
System.RuntimeType.GetPropertyImpl (文字列名、BindingFlags bindingAttr、バインダー バインダー、型 returnType、Type[] 型、ParameterModifier[] 修飾子) で System.Type.GetProperty (文字列名、BindingFlags bindingAttr) で System.Linq.Enumerable.< >c__DisplayClass12 3.<CombineSelectors>b__11(TSource x)
at System.Linq.Enumerable.WhereSelectEnumerableIterator
System.Linq.Enumerable.Aggregate[TSource,TAccumulate](IEnumerable 1 source, TAccumulate seed, Func
3 func) の 2.MoveNext( 1 set, IEnumerable
) System.Data.Entity.Migrations.IDbSetExtensions.AddOrUpdate[TEntity] で (IDbSet`1 セット、TEntity[] エンティティ)