Dej*_*n.S 4 entity-framework-4 entity-framework-ctp5 asp.net-mvc-2
我在scottgu的博客上关于EF代码第一个CTP5的示例,但我得到了错误
System.Data.SqlClient.SqlException:无效的对象名称'dbo.Products'.
这是我得到的代码.
<add name="CTP5Context"
connectionString="data source=.\SQLEXPRESS;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|EFCTP5.mdf;User Instance=true"
providerName="System.Data.SqlClient" />
public class CTP5Context : DbContext
{
public DbSet<Product> Products { get; set; }
}
public class Product
{
public int Id { get; set; }
public string ProductName { get; set; }
public int Amount { get; set; }
}
var context = new CTP5Context();
var products = context.Products;
return View(products);
Run Code Online (Sandbox Code Playgroud)
我有点无能为力我在博客中做了同样的事情,这不是我第一次使用EF(但是CTP5 tho),我是在忽视什么?
小智 7
如果您的表名是数据库中的Product,请尝试以下操作:
[Table("Product", SchemaName = "dbo")]
public class Product
{
public int Id { get; set; }
public string ProductName { get; set; }
public int Amount { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
要使用该Table属性,您需要添加以下using语句:
using System.ComponentModel.DataAnnotations;
Run Code Online (Sandbox Code Playgroud)
希望这可以帮助!它对我有用.
我有同样的问题,但我做了2次更改,它对我有用.我更改了连接字符串(添加了初始目录)
<add name="CTP5Context"
connectionString="data source=.\SQLEXPRESS;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|\northwind.mdf;User Instance=true;initial catalog=Northwind"
providerName="System.Data.SqlClient" />
Run Code Online (Sandbox Code Playgroud)
在Global.asax中,我在Application_Start()中添加了以下行
Database.SetInitializer<Northwind>(new System.Data.Entity.DropCreateDatabaseAlways<Northwind>());
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4673 次 |
| 最近记录: |