次の構造のマスター/ディテールを挿入したいと考えています。
すべてのセールには、ID、日付、クライアント、従業員、およびセール詳細があります。すべての販売詳細には、個数と価格、そしてもちろんそのマスターとどの製品かへの参照があります。
次のコードを試しましたが、動作しません。
private void GenerarNota()
{
EntityCollection<SalesDetail> details = new EntityCollection<SalesDetail>();
foreach (ListItem item in _productList)
{
SalesDetail detail = new SalesDetail();
detail.Product = db.Product.FirstOrDefault(p => p.Id == item.Id);
detail.Pieces = item.Pieces;
detail.Price = item.Price;
details.Add(detail);
}
Sale sale = new Sale
{
Client = (Client )txtCliente.Item,
Employee = (Employee )txtEmp.Item,
SalesDetail = details
};
db.AddToSale(sale);
db.SaveChanges();
}
私が得た例外:
オブジェクトを EntityCollection または EntityReference に追加できませんでした。ObjectContext にアタッチされているオブジェクトは、ソース オブジェクトに関連付けられていない EntityCollection または EntityReference に追加できません。
私は何か間違ったことをしていますか?オブジェクトのアタッチとデタッチについて読みましたが、試してみたところ、FK 制約違反が発生しました。
私が間違っていること、またはそれを行う別の方法があるかどうか教えてください。私はLINQで非常に新しいです。純粋なSQLで完全に実行できましたが、それについて学びたいと思いました。