1

「ビジネス」エンティティのグラフを返したいです。Business エンティティには、「連絡先」のコレクションがあります。

だから私は基本的にこれが欲しい:

ctx.Business.Include("Contacts").Where(b => b.BusinessID == id).Single();

問題は、ビジネスのすべての連絡先が必要ないことです。ContactTypeID = x を持つものだけです。どうすればこれを達成できますか? クエリを 2 つのステップに分割する必要があるかもしれないと考えました。1 つはビジネスを取得し、2 番目は連絡先を取得してビジネスに関連付けます。

しかし、私は STE t4 テンプレートを使用していますが、それを使用してそれを行う方法がわかりません。

助けていただければ幸いです。

4

2 に答える 2

1

そのための1つの方法は次のとおりです。

var biz = from b in ctx.Business where b.BusinessID == id
select new 
{
   Business = b,
   Contacts = b.Contacts.Where(c => c.ContactTypeID == x)
}.ToList();
于 2010-08-17T04:48:33.777 に答える
0

私はそれを行う方法を見つけたと思います:

var biz = ctx.Business.Where(b => b.BusinessID == id).Single(); 
var contacts = ctx.Contacts.Where(c => c.BusinessID==id && c.ContactTypeID==6);
foreach (var contact in contacts)
{
   biz.Contacts.Add(contact);
}

このように連絡先を追加すると、「新しい」アイテムとして扱われるのではないかと心配しましたが、変更追跡がオフになっているため、変更されていないものとして扱われます。変更の追跡は、シリアル化が解除された後にのみ有効になると思います。

于 2010-08-17T12:26:37.367 に答える