我在我的asp.net MVC 4应用程序中使用实体框架工作.我有一个edmx文件.我试图使用这个EF模型中的实体来填充像这样的视图模型:
using (var context = new VehiclesContext()) { IEnumerablevehicles = context.Vehicles.Select(x => new SearchedVehicles { Year = x.Year, Make = x.Make, Model = x.Model, Mileage = x.Mileage, VIN = x.VIN }); return View(vehicles); }
Vehicle是edmx中的实体,其中SearchedVehicles是viewmodel,但是我得到了这个异常:
Code generated using the T4 templates for Database First and Model First development may not work correctly if used in Code First mode. To continue using Database First or Model First ensure that the Entity Framework connection string is specified in the config file of executing application. To use these classes, that were generated from Database First or Model First, with Code First add any additional configuration using attributes or the DbModelBuilder API and then remove the code that throws this exception.
在这条线上:
protected override void OnModelCreating(DbModelBuilder modelBuilder) { throw new UnintentionalCodeFirstException(); }
Zaphod.. 9
这是每个设计.您已经从数据库创建了一个模型,表明您的代码永远不应该创建数据库.
您收到的错误消息是因为它找不到数据库而因此尝试创建它.
要解决此问题,您需要检查您的connectionstring以确保它可以找到您要连接的数据库.如果你真的想创建数据库,你应该先找代码.这意味着要么删除"抛出新异常"行并继续使用模型(这意味着您不能再从数据库更新模型,因为它会重新插入异常行),或者您可以对数据库进行反向工程以编写代码 - 第一个模型.
有关逆向工程技巧,请参阅http://msdn.microsoft.com/en-us/data/jj593170.aspx.