私はEntity Framework 4、SQLiteデータベースをデータベースファーストアプローチで使用しています。テーブル構造をスナップショットとして添付しました。
Bnb_Company および Bnb_Player テーブルでデータの書き込み/読み取りはできますが、Bnb_Game テーブルに行を入力しようとすると、次のエラーが発生します。
「MockStockDbEntities.Bnb_Game」のエンティティは、「Bnb_CompanyBnb_Game」関係に参加します。関連する 'Bnb_Company' が 0 件見つかりました。1 'Bnb_Company' が必要です。!
//Reset company values
if (context.Bnb_Company.Count() > 0)
{
var companydetails = context.Bnb_Company.ToList();
foreach (var company in companydetails)
{
company.ESC = 0;
company.MarketValue = company.FaceValue;
}
context.SaveChanges();
}
if (context.Bnb_Player.Count() > 0)
{
var playerDetails = context.Bnb_Player.ToList();
//Reset Player values
foreach (var player in playerDetails)
{
player.NetAmount = 0;
player.Amount = 1000;
if (context.Bnb_Company.Count() > 0)
{
var companyDetails = context.Bnb_Company.ToList();
foreach (var company in companydetails)
{
if (context.Bnb_Game.Count() > 0 && (context.Bnb_Game.Where(b => b.PlayerId == player.Id && b.CompanyId == company.Id).Count() > 0))
{
var specificCompanyShare = context.Bnb_Game.Where(b => b.PlayerId == player.Id && b.CompanyId == company.Id).FirstOrDefault();
specificCompanyShare.Shares = company.DefaultShares;
}
else
{
Bnb_Game playerCompanyShare = new Bnb_Game();
playerCompanyShare.CompanyId = company.Id;
playerCompanyShare.PlayerId = player.Id;
playerCompanyShare.Shares = company.DefaultShares;
context.Bnb_Game.AddObject(playerCompanyShare);
}
}
}
}
context.SaveChanges();
}