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; }
}

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.WhereSelectEnumerableIteratorSystem.Linq.Enumerable.Aggregate[TSource,TAccumulate](IEnumerable 1 source, TAccumulate seed, Func3 func) の 2.MoveNext( 1 set, IEnumerable) System.Data.Entity.Migrations.IDbSetExtensions.AddOrUpdate[TEntity] で (IDbSet`1 セット、TEntity[] エンティティ)

4

0 に答える 0