0

メソッドを追加するための一種の汎用リポジトリを作成しようとしています。すべて追加しても問題ありませんが、FOREIGN KEYを持つ2つのテーブルに関連するテーブルがあります.しかし、外部キーのために機能しません

代替テキスト

public class DomainRepository<TModel> : IDomainRepository<TModel> where TModel : class
{
    private ObjectContext _context;
    private IObjectSet&#60;TModel&#62; _objectSet;

    public DomainRepository(ObjectContext context)
    {
        _context = context;
        _objectSet = _context.CreateObjectSet&#60;TModel&#62;();
    }

    // do something...
    public TModel Add<TModel>(TModel entity) where TModel : IEntityWithKey
    {
        EntityKey key = _context.CreateEntityKey(entity.GetType().Name, entity);          
        _context.AddObject(key.EntitySetName, entity);
        _context.SaveChanges();
        return entity;
    }
    // do something...
}

リポジトリの呼び出し:

// insert-update-delete
public partial class AddtoTables
{
    public table3 Add(int TaskId, int RefAircraftsId)
    {
        using (DomainRepository<table3> repTask = new DomainRepository<table3>(new TaskEntities()))
        {
           return repTask.Add&#60;table3&#62;(new table3() { TaskId = TaskId, TaskRefAircraftsID = RefAircraftsId  });
        }
    }
}

このテーブルに外部キー関係が含まれている場合、新しい値を追加する方法は?

代替テキスト

4

1 に答える 1

1

私はあなたのインターフェースを明確に理解していないと思いますが、外部キーを持つオブジェクトを汎用リポジトリに追加するには、外部キーを持つオブジェクトを追加するためのサポートを追加する必要があります。署名のどこかに何かがあればparams ForeignKey[]、外部キーを持つサポート オブジェクトを持つための一歩を踏み出すことができると思います。アドバイスなんて無意味かもしれませんが、有意義なアドバイスを頂きました。

Martin Fowler 著の Patterns of Enterprise Application Architecture を読めば、あなたのすべての質問に答えてくれるはずです。

于 2010-12-23T12:54:39.763 に答える