net*_*tik 5 entity-framework entity-framework-core asp.net-core
我正在尝试创建一个ASP.NET vNext WebAPI + AngularJS +实体框架项目.但显然,在EF7中有很多变化,所以我遇到了以下问题:
我改变了project.json如下:
"dependencies": {
"Microsoft.AspNet.Server.IIS": "1.0.0-beta1",
"EntityFramework": "7.0.0-beta1",
"EntityFramework.SqlServer": "7.0.0-beta1",
"EntityFramework.Commands": "7.0.0-beta1",
"Microsoft.AspNet.Mvc": "6.0.0-beta1",
"Microsoft.AspNet.Diagnostics": "1.0.0-beta1",
"Microsoft.Framework.ConfigurationModel.Json": "1.0.0-beta1"
Run Code Online (Sandbox Code Playgroud)
在我的DataContext类中,我尝试以下方法:
using System;
using Project1.Models;
using Microsoft.Data.Entity;
namespace Project1.DataAccess
{
public class DataContext
{
public DbSet<Website> Websites { get; set; }
public DataContext()
{
Microsoft.Data.Entity.Infrastructure.Database.SetInitializer(new DropCreateDatabaseIfModelChanges<DataContext>());
//Database.SetInitializer(new DropCreateDatabaseAlways<DataContext>());
}
}
}
Run Code Online (Sandbox Code Playgroud)
}
首先:为什么命名空间System.Data.Entity改为Microsoft.Data.Entity?在任何microsoft msdn文章中我都找不到任何有关此更改的内容!
第二:整体Database.SetInitializer不再起作用了.它建议使用Microsoft.Data.Entity.Infrastructure命名空间,但Database类不包含SetInitializer方法.
由于 EF7 仍处于预发布阶段,因此您在 MSDN 文章中还找不到任何有关它的文档;您需要查看EF7 GitHub Wiki以获取任何信息。
当您尝试 EF7 时,请记住,这是新 EF 代码库开发的早期阶段,有许多功能已部分实现或尚未可用。
我相信这SetInitializer是其中一件以完全不同的方式实施的事情;该团队正在避免静态方法,以提高框架的可测试性。
另请注意,EF7是最新版本7.0.0-beta3,但 wiki 提供了有关如何使用夜间构建的信息。(考虑到自 VS2015 CTP6 发布以来发生的严重变化,使用夜间构建可能会很困难。)
| 归档时间: |
|
| 查看次数: |
2428 次 |
| 最近记录: |