Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/287.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如果在代码优先模式下使用,则使用T4模板为数据库优先和模型优先开发生成的代码可能无法正常工作_C#_Asp.net Mvc_Entity Framework_Asp.net Mvc 4 - Fatal编程技术网

C# 如果在代码优先模式下使用,则使用T4模板为数据库优先和模型优先开发生成的代码可能无法正常工作

C# 如果在代码优先模式下使用,则使用T4模板为数据库优先和模型优先开发生成的代码可能无法正常工作,c#,asp.net-mvc,entity-framework,asp.net-mvc-4,C#,Asp.net Mvc,Entity Framework,Asp.net Mvc 4,我正在asp.NETMVC4应用程序中使用实体框架。我有一个edmx文件。我正在尝试使用此EF模型中的实体填充viewmodel,如下所示: using (var context = new VehiclesContext()) { IEnumerable<SearchedVehicles> vehicles = context.Vehicles.Select(x => new Search

我正在asp.NETMVC4应用程序中使用实体框架。我有一个edmx文件。我正在尝试使用此EF模型中的实体填充viewmodel,如下所示:

using (var context = new VehiclesContext())
            {               

                IEnumerable<SearchedVehicles> 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);
            }      
在这一行:

 protected override void OnModelCreating(DbModelBuilder modelBuilder)
        {
            throw new UnintentionalCodeFirstException();
        }

这是每种设计。您已经从数据库创建了一个模型,这表明您的代码不应该创建数据库

出现您收到的错误消息是因为它找不到数据库,因此尝试创建数据库

要解决此问题,您需要检查connectionstring,以确保它能够找到要连接的数据库。如果你真的想创建数据库,你应该先编写代码。这意味着要么删除“throw new exception”行并继续使用模型(这意味着您不能再从数据库中更新模型,因为它会重新插入异常行),要么您可以对数据库进行反向工程,以对第一个模型进行编码


有关反向工程技巧,请参阅。

我遇到了相同的错误“使用T4模板生成的代码…”。我的问题与上面不同。我的数据库表架构已更改。因此,在刷新之后,我通过将edmx作为xml打开来编辑它(rt单击并说用…打开,然后选择xml)。在修复了xml中的所有错误之后,当我运行应用程序时,我得到了上面的错误。因此,下一次我撤销TFS中的所有内容,并继续从Edmx图表页面中删除和添加有问题的表。这样做有助于解决上述错误。还学到了,永远不要在xml模式下编辑edmx文件


快乐编码

我在app.config文件中没有看到任何连接字符串(edmx在类库项目中),我应该在app.config或使用此edmx的web.config中添加连接字符串吗?另外,当我创建edmx时,为什么它不在app.configweb.config中创建连接字符串?它是您的web应用程序使用的字符串。但奇怪的是,它没有为您生成连接字符串……如果您首先使用模型(从数据库生成的模型),并通过其他构造函数指定显式连接字符串,请确保您使用的是正确的连接字符串样式,即via。这并不能真正回答问题。如果您有不同的问题,可以单击以提问。一旦你有足够的信息,你也可以吸引更多的注意力来回答这个问题。@ForceMagic,99%的人来到这里只是简单地用谷歌搜索错误信息。他们甚至可能不读这个问题。这些人中的许多人都会遇到与user2308925相同的问题。@user1172763@ForceMagic是的,这个网站有很多规则。这是它最糟糕的地方之一。@user1172763这是这个网站唯一可以管理的方式,这里的新手通常的反应是像论坛一样使用它,这不是它的工作方式。但一旦你习惯了它,你会注意到它实际上更快更容易找到答案,因为答案就在它们应该在的地方:)
 protected override void OnModelCreating(DbModelBuilder modelBuilder)
        {
            throw new UnintentionalCodeFirstException();
        }