【问题标题】:MVC 5 unable to create controller with Linq to SQL classMVC 5 无法使用 Linq to SQL 类创建控制器
【发布时间】:2014-02-21 18:12:44
【问题描述】:

我正在尝试创建一个控制器以在 VS2013 中使用 Linq to SQL 类。我创建了一个 SQL 数据库并添加了一个名为 Alias 的表,其中包含一个字段和一个主键。然后我继续将一个 Linq to SQL 类添加到我的模型文件夹中,称为 Alias。我将 Alias 表添加到 OR 设计器,保存了类并重建了解决方案。

我单击了我的 Controllers 文件夹,然后使用 EF 添加带有视图的控制器 MVC 5。这就是事情搞砸的地方,我的 Alias Linq to SQL 类的数据上下文丢失了。我在这里做错了什么?我对 Alias 模型类的唯一选择是创建一个新的数据上下文类。如果它与这个模板有关,那么这个 Alias 类的默认控制器模板是什么?

添加控制器对话框的图片:

web.config 连接字符串:

 <connectionStrings>
    <add name="URLDBConnectionString" connectionString="Data Source=(LocalDB)\v11.0;AttachDbFilename=|DataDirectory|\URLDB.mdf;Integrated Security=True"
      providerName="System.Data.SqlClient" />
    <add name="AurlContext" connectionString="Data Source=(localdb)\v11.0; Initial Catalog=AurlContext-20140221123357; Integrated Security=True; MultipleActiveResultSets=True; AttachDbFilename=|DataDirectory|AurlContext-20140221123357.mdf"
      providerName="System.Data.SqlClient" />
  </connectionStrings>

【问题讨论】:

  • 您确定 web.config 中的连接字符串正确吗?
  • 我认为您必须使用实体框架 - 不确定 LINQ to SQL 中是否支持此功能
  • @GazWinter 我刚刚检查了连接字符串,看起来它检查了数据库,它还添加了 Aurl 上下文。我只是将它添加到问题中以防万一。

标签: c# sql sql-server asp.net-mvc linq


【解决方案1】:

实体框架 (EF) 与 LINQ to SQL 不同。您正在尝试使用为实体框架设计的脚手架,但您唯一拥有的是 LINQ to SQL 上下文。这行不通。

如果您使用的是 LINQ to SQL 设计器,您应该能够轻松过渡到数据库优先样式的实体框架。要将 Database First 上下文添加到您的项目,请执行以下步骤:

  1. 右键单击您的项目,然后单击添加新项目
  2. 转到数据部分
  3. 选择 ADO.NET 实体数据模型
  4. 像使用 .dbml 一样为其命名,但 EF 使用 .edmx
  5. 选择从数据库生成
  6. 创建新连接
  7. 选择要包含的表格

也就是说,我强烈建议您使用 EF“代码优先”方法。

【讨论】:

  • 谢谢,我以为我把 EF 搞砸了。我想我会改用 EF 方法。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-02-04
  • 1970-01-01
  • 2016-04-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多