ASR*_*ASR 16 c# entity-framework-4.1 dbcontext
我有一个问题,EF 4.1没有调用,OnModelCreating所以我可以配置表等我有一个现有的数据库.这是我的连接字符串:
<add name="AcmeDBContext"
connectionString="metadata=res://*/|res://*/|res://*/;
provider=System.Data.SqlClient;
provider connection string="
data source=[server];
initial catalog=Acme;integrated security=True;
multipleactiveresultsets=True;App=EntityFramework""
providerName="System.Data.EntityClient" />
Run Code Online (Sandbox Code Playgroud)
这是我的继承自的类DbContext:
public class AcmeDBContext : DbContext
{
public AcmeDBContext()
: base()
{
Database.SetInitializer<AcmeDBContext>(null);
}
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Conventions.Remove<IncludeMetadataConvention>();
modelBuilder.Conventions.Remove<PluralizingTableNameConvention>();
modelBuilder.Entity<Vehicle>().ToTable("tblVehicle");
modelBuilder.Entity<VehicleMake>().ToTable("tblVehicleMake");
modelBuilder.Entity<VehicleModel>().ToTable("tblVehicleModel");
base.OnModelCreating(modelBuilder);
}
}
Run Code Online (Sandbox Code Playgroud)
我已经在线阅读和阅读,但我不能指出问题所在.该OnModelCreating不会被调用,因此例外说,实体/类(汽车,VehicleMake,VehicleModel)不会在目前情况下存在,当我试图查询任何东西.
Lad*_*nka 22
您正在使用两种方法 - 您的连接字符串表示您希望首先使用模型或首先使用EDMX数据库,但您正在编写上下文以使用代码优先/流畅的api来映射数据库.一旦你使用EDMX OnModelCreating永远不会被调用.如果要使用,请使用不带元数据资源的公共SQL连接字符串OnModelCreating.
<add name="AcmeDBContext"
connectionString="data source=[server];
initial catalog=Acme;integrated security=True;
multipleactiveresultsets=True;App=EntityFramework"
providerName="System.Data.SqlClient" />
Run Code Online (Sandbox Code Playgroud)