SBi*_*are 2 c# entity-framework entity-framework-5
我首先关注EF代码的视频.
我试图按照VS 2012控制台应用程序中的确切步骤操作,请参阅下面的代码,
class Program
{
static void Main(string[] args)
{
using (var context = new EftDbContext())
{
context.Blogs.Add(new Blog { Name = "ASP.NET" });
context.SaveChanges();
var blogs = from n in context.Blogs
orderby n.Name
select n;
foreach (var b in blogs)
{
Console.WriteLine(b);
}
}
}
public class Blog
{
public int BlogId { get; set; }
public string Name { get; set; }
public virtual List<Post> Posts { get; set; }
}
public class Post
{
public int PostId { get; set; }
public string Title { get; set; }
public int BlogId { get; set; }
public virtual Blog Blog { get; set; }
}
public class EftDbContext : DbContext
{
public EftDbContext()
: base("name=EftDbContext")
{
}
public DbSet<Post> Posts { get; set; }
public DbSet<Blog> Blogs { get; set; }
}
}
Run Code Online (Sandbox Code Playgroud)
但是,当我运行我的应用程序时,它会给我以下错误:
未映射"EntityFrameworkTest.Program + Post"类型.使用Ignore方法或NotMappedAttribute数据批注检查未明确排除类型.验证类型是否已定义为类,不是原始类,嵌套类还是通用类,并且不从EntityObject继承.

如果有兴趣的人是我当前的连接字符串(我试过多个选项):
<connectionStrings>
<add name="EftDbContext"
connectionString="Database=TestDB;Server=(local);Integrated Security=SSPI" providerName="System.Data.SqlClient" />
</connectionStrings>
Run Code Online (Sandbox Code Playgroud)
我需要在哪里指定映射,更重要的是为什么?EF应该选择不?
我使用VS 2012 Web API模板创建了另一个项目,但没有显示此错误...
更新:
DB不存在.我还没有在我的机器上第一次成功执行此应用程序,以便EF代码首先为我生成数据库.它在EftDbContext构造函数本身中失败了.
更新2:此问题已解决.问题是我的所有POCO类和DbContext都嵌套在Program类中.EF不喜欢它...
| 归档时间: |
|
| 查看次数: |
4059 次 |
| 最近记录: |