如果在Code First模式下使用,使用T4模板为Database First和Model First开发生成的代码可能无法正常工作

 刘刚michaelup_340 发布于 2023-02-08 21:33

我在我的asp.net MVC 4应用程序中使用实体框架工作.我有一个edmx文件.我试图使用这个EF模型中的实体来填充像这样的视图模型:

using (var context = new VehiclesContext())
            {               

                IEnumerable vehicles = 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.

撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有