开发者社区> 问答> 正文

LinqToSql引用的实体将抛出NullReferenceException

我的LinqToSql模型上有一个非常有趣的问题。在我的某些表上,我有对其他表的引用,在LinqToSql中,这由EnitiyRef类表示,当您尝试访问引用表时,LinqToSql将从数据库中加载引用。

在我的开发机上,一切正常(引用已完美加载),但是昨晚我将更改上传到我们的生产服务器,并在尝试访问表上的引用时开始获取NullReferenceExceptions。

样例代码:

var sale = db.Sales.Single(s => s.ID == 1); string username = sale.User.Name; // User is a reference to a User table // LinqToSql will automatically load the // row and access the fields i need.

// On my server the sale.User throws an exception that its null (User) but the user // is definitly in the database (there is even a FK constraint from Sale to User) 起初我以为我的DataContext得到了GC,但我仔细检查了所有内容,但都没有结果(除了可以在我的盒子上使用)。

(服务器和我的盒子上的所有东西都一样,相同的dll,相同的数据库架构等。)(我实际上将整个DBF文件复制到了我的服务器上,因此它的架构完全相同)

问题来源于stack overflow

展开
收起
保持可爱mmm 2019-11-18 17:02:16 404 0
1 条回答
写回答
取消 提交回答
  • 检查DataContext生存期。这里可能有过时的缓存在工作

    例如:

    上下文1:ID == 1的销售待售。检查其用户属性,并观察是否为空用户。 上下文2:ID == 1的甩卖。通过添加新用户来修改用户属性。承诺。 上下文1:ID == 1的甩卖。检查其User属性。是的,仍然为null(已缓存!)。

    2019-11-18 17:02:28
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载