首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >EF MVC连接字符串和关联

EF MVC连接字符串和关联
EN

Stack Overflow用户
提问于 2014-01-25 16:27:20
回答 2查看 68关注 0票数 0

我有一个应用程序,如果我从web-config获得连接字符串,那么如果我在创建这样的新上下文时设置了连接字符串,那么一切都可以正常工作:

代码语言:javascript
复制
MyContext context = new MyContext("myconnectionString");

当我执行查询并尝试从一个实体传递到另一个实体时,返回空值,如下所示

代码语言:javascript
复制
MyContext context = new MyContext("myconnectionString");

var qLegals = from x in context.ContactsLegals
                        where x.end == null
                        orderby x.start descending
                        select x;

qLegals.First().ContactsLegalDetails.First();

ContactsLegalDetails是空的,就像失去了我想要改变的所有关联。

代码语言:javascript
复制
context.Configuration.LazyLoadingEnabled

但还是没有用

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-01-26 12:07:40

有两种解决办法:

  • 使用紧急加载(使用.Include() -参见http://msdn.microsoft.com/en-us/data/jj574232#eager )
  • 使用延迟加载-属性" ContactsLegalDetails“应该是虚拟的,这将启用延迟加载,因此除非您不尝试访问ContactsLegalDetails,否则就不会有它。

编辑:

触摸是没有用的:

代码语言:javascript
复制
context.Configuration.LazyLoadingEnabled

默认情况下,它将被启用,您可以使用此属性禁用LazyLoading来序列化对象。

票数 0
EN

Stack Overflow用户

发布于 2014-01-25 17:46:50

我认为您应该为上下文类创建一个分部类,它将在构造函数中将连接字符串作为参数,如下所示:

代码语言:javascript
复制
public partial class YourContextClass: DbContext
{
    public YourContextClass(string connectionString) : base(connectionString) 
    {
          Database.Connection.ConnectionString = connectionString; 
    }
}

在此之后,如果您创建了以connectionstring作为参数的对象,那么它将工作如下:

代码语言:javascript
复制
YourContextClass context = new YourContextClass ("myconnectionString");

谢谢

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21353095

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档