有两个表:
Account (id)
和BranchId(Id,Name,AccountId)
我在pageload中有这段代码
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
using (var db = new SitesDataContext())
{
BranchGrid.DataSource = db.Branches.Where(b=>b.AccountId == loggedInUser.AccountId).ToList();
BranchGrid.DataBind();
}
}
}
我了解Linq和延迟加载,这就是我使用ToList()
的原因
但我仍然得到错误。
现在,如果我删除分支b / w分支和帐户,上面的代码工作正常。 但是它会引发协会异常。
如何在保持关联的同时解决这个问题?
由于
答案 0 :(得分:3)
即使使用ToList(),您的帐户也不会被急切加载,只有分支
你可以:
或
将loadOptions添加到datacontext以急切加载带分支的帐户(类似这样)
DataLoadOptions options = new DataLoadOptions();
options.LoadWith<Branches>(b => b.Account);
Context.LoadOptions = options;
答案 1 :(得分:0)
某处,正在访问Branch实例的Account属性。您必须找到访问该属性的代码并将其停止。