FK関係(1対多)を持つ2つのテーブルで、EF(モデルファースト)を使用して一括挿入しようとしています。以下のコードでは、すべてのチャレンジエントリが正しく挿入されますが、X個の不足分だけが挿入されます。私の期待...私は2つの課題で10の不足があります。 2つのチャレンジエントリと20の不足エントリを受け取る必要があります。私は挿入された最初の不足のための10のチャレンジエントリーを見るだけです。 (下のコードは簡略化されています)FKの関連モデルを使用したEF 6 'Bulk' insert
//class for cloning Shortage collection
public class ShortageCollection : Collection<Shortage>
{
public ShortageCollection(IList<Shortage> source) : base(source) { }
public ShortageCollection() { }
public ShortageCollection Clone()
{
return Clone(this);
}
public static ShortageCollection Clone(ShortageCollection shortage)
{
var res = new ShortageCollection();
foreach (var s in shortage)
{
res.Add(s.Clone());
}
}
}
public class Shortage : StandardDB.Shortage
{
public Shortage Clone()
{
return new Shortage()
{
PART_NUMBER = this.PART_NUMBER,
Note = this.Note,
Qty = this.Qty,
ResponseMachine = this.ResponseMachine
};
}
}
public void CreateChallenge()
{
var JSONJobs = new JavaScriptSerializer().Deserialize<string[]>(Jobs);
var JSONParts = new JavaScriptSerializer().Deserialize<ChallengePartsList[]>(Parts);
using (ARTEntities art = new ARTEntities())
{
art.Configuration.AutoDetectChangesEnabled = false;
art.Configuration.ValidateOnSaveEnabled = false;
ShortageCollection sColl = new ShortageCollection();
foreach(var part in JSONParts)
{
Shortage s = new Shortage()
{
PART_NUMBER = part.Invid,
Note = Challenge,
Qty = part.Qty,
ResponseMachine = ResponseMachine
};
sColl.Add(s);
}
foreach (var job in JSONJobs) {
Challenge c = new Challenge()
{
InitiatorORG = Org,
TypeID = TypeID,
DISCRETE_JOB = job,
InitiatorPERSON_ID = InitiatorPersonID,
InitiatedDate = datenow,
Challenge1 = Challenge,
ChampionGroupID = ChampionGroupID,
StatusID = StatusID,
InitiatorGroupID = InitiatorGroupID,
DivisionID = DivisionID,
Shortages = sColl.Clone()
};
art.Challenges.Add(c);
}
art.SaveChanges();
}
}
私に正しい方向を教えていただきありがとうございます。上記のコードでこのエラーが発生します。 (ローカル変数)不足s。 's'は変数ですが型のように使用されます。 –
oops編集を参照してください。 'new'キーワードを削除しました –
ありがとうございます。私がモデルファーストクラスをオーバーライドしていなかった場合、それはうまくいくかのように見えます。私は、複数のCLR型がEDMタイプ 『不足』と一致しているため曖昧であるEDM型へのCLR型の「マッピング を得る。 は、以前のCLR型 『StandardDB.Shortage』、新たに発見されたCLRタイプ「WebApps.Controllers.ChallengeController +不足を見つけましたそれは不足の集まりだったので「」エラー –