MVC 5无法使用Linq to SQL类创建控制器

Mar*_*ube 1 c# sql linq sql-server asp.net-mvc

我正在尝试创建一个控制器,以便在VS2013中使用Linq to SQL类.我创建了一个SQL数据库,并添加了一个名为Alias的表,其中包含字段和主键.然后我继续将Linq to SQL类添加到名为Alias的Models文件夹中.我将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>
Run Code Online (Sandbox Code Playgroud)

Dis*_*ile 5

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

如果您使用的是LINQ to SQL设计器,那么您应该能够过渡到Database First样式的Entity Framework而不会有太多麻烦.要向项目添加Database First上下文,请按照下列步骤操作:

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

也就是说,我强烈建议您使用EF"Code First"方法.