私はDDDを学ぼうとしていますが、簡単なデモプロジェクトを作成しています。
今、私は一般的なリポジトリを持っています
public class Repository<T> where T : class, IAggregateRoot
{
public void Add(T entity)
{
ObjectSet.AddObject(entity);
}
}
とProduct
クラス
public class Product : IAggregateRoot
{
private Guid _id = Guid.Empty;
public Guid Id
{
get { return _id; }
private set { _id = value; }
}
public string Name { get; private set; }
protected Product() { }
public Product(string name)
{
Name = name;
}
}
アイデアは、作成された製品に空のGUIDを持たせたいということです。がデータベースに挿入された場合にのみ、新しいGUIDを取得する必要があります。
Product product = new Product("Hello World");
product.Id == Guid.Empty; // True
現在、リポジトリを呼び出して製品を挿入すると、空のGUIDを使用してデータベースに挿入されます。
var repository = new Repository<Product>();
repository.Add(product);
製品のGUID世代はどこに置くべきですか?リポジトリに?はいの場合、私は汎用リポジトリを持っているので、どのようにすればよいですか。
ありがとうございました