1
を働いていない私はこのように定義された同じテーブルから2つの外部キーがあります。Entity Frameworkのコードファースト - 同じテーブルから2つの外部キーは
modelBuilder.Entity<OfferTemplate>()
.HasRequired(ca => ca.CompanyAgentBuyer)
.WithMany(t => t.OfferTemplatesAsBuyer)
.HasForeignKey(ca => ca.CompanyAgentBuyer_CompanyAgentID)
.WillCascadeOnDelete(false);
modelBuilder.Entity<OfferTemplate>()
.HasOptional(ca => ca.CompanyAgentBroker)
.WithMany(t => t.OfferTemplatesAsBroker)
.HasForeignKey(ca => ca.CompanyAgentBroker_CompanyAgentID)
.WillCascadeOnDelete(false);
:私は、このセットアップを得たモデルに
public class OfferTemplate { ...
[ForeignKey("CompanyAgentBuyer_CompanyAgentID")]
[InverseProperty("OfferTemplatesAsBuyer")]
public virtual CompanyAgent CompanyAgentBuyer { get; set; }
[ForeignKey("CompanyAgentBroker_CompanyAgentID")]
[InverseProperty("OfferTemplatesAsBroker")]
public virtual CompanyAgent CompanyAgentBroker { get; set; }
public int CompanyAgentBuyer_CompanyAgentID { get; set; }
public int? CompanyAgentBroker_CompanyAgentID { get; set; }
...
}
をこれまでのところ、クエリを実行する場合を除いてすべてが機能します。
var templates = from user in context.UsersInformation
from cTemplate in context.OfferTemplates
where user.User.Equals(userID) && cTemplate.Company == user.Company
select cTemplate;
var x = templates.FirstOrDefault().CompanyAgentBuyer;
IDプロパティ(CompanyAgentBuye r_CompanyAgentID & CompanyAgentBroker_CompanyAgentID)が(この場合はxのような)インスタンスが移入されていない場合、正しく移入されています。私はIncludeメソッドを使ってみましたが、どちらもうまくいきませんでした。私の欠点は何ですか?
ここではインクルードを行いますか?結合と投影のクエリを実行するので、クエリの再グループ化後に完了しなければ、インクルードは破棄されます。 – DevilSuichiro
@DevilSuichiroありがとうございます。いいえ、私は現在Includeを使用していません。 – paburgos