Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/337.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.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# EF 4.1未调用模型创建_C#_Entity Framework 4.1_Dbcontext - Fatal编程技术网

C# EF 4.1未调用模型创建

C# EF 4.1未调用模型创建,c#,entity-framework-4.1,dbcontext,C#,Entity Framework 4.1,Dbcontext,EF 4.1没有调用ModelCreating上的,,以便配置表等。我有一个现有的数据库。这是我的连接字符串: <add name="AcmeDBContext" connectionString="metadata=res://*/|res://*/|res://*/; provider=System.Data.SqlClient; provider connection string=

EF 4.1没有调用ModelCreating上的
,以便配置表等。我有一个现有的数据库。这是我的连接字符串:

<add name="AcmeDBContext"
     connectionString="metadata=res://*/|res://*/|res://*/;
                       provider=System.Data.SqlClient;
                       provider connection string=&quot;
                       data source=[server];
                       initial catalog=Acme;integrated security=True;
                       multipleactiveresultsets=True;App=EntityFramework&quot;"
     providerName="System.Data.EntityClient" />

我在网上读了很多书,但我无法指出问题所在。从不调用模型创建上的
,因此异常表示实体/类(Vehicle、VehicleMake、VehicleModel)当我尝试查询任何内容时,当前上下文中不存在任何内容。

您同时使用两种方法-您的连接字符串表示您希望在EDMX中首先使用模型或数据库,但您正在编写上下文以使用代码优先/fluent api映射数据库。一旦使用EDMX
OnModelCreating
将永远不会被调用。如果要在模型创建时使用
OnModelCreating
,请使用不带元数据资源的公共SQL连接字符串

<add name="AcmeDBContext"
     connectionString="data source=[server];
                       initial catalog=Acme;integrated security=True;
                       multipleactiveresultsets=True;App=EntityFramework"
     providerName="System.Data.SqlClient" />


您是如何在代码中创建上下文实例的?因此,如果我想先使用数据库(我想我没有选择),那么我应该在哪里将类名映射到表名?我必须使用与表名相同的类名吗??很抱歉,我以前使用过NH,但没有使用EF,而且我可以轻松地将类映射到具有FluentNHI删除的元数据信息的表,并且行为仍然没有改变!!OnModelCreating仍然没有被调用。如果要首先使用数据库,请创建一个EDMX文件。您可以选择从现有数据库创建此数据库。在第一次导入之后,您将拥有一个基本的实体模型,您可以根据需要完全修改该模型。实体框架然后执行从实体模型到数据库模式的映射。请参见第一次使用数据库时调用的建模创建。应用程序启动时不会自动调用它。如果您想使用fluent映射,那么使用
OnModelCreating
是指定表和类之间映射的一种方法。@Shimmy-为了完整起见,尽管这是一条三年前的注释:“事实上,我不在乎您是先称它为模型还是先称它为代码”-在实体框架中,这是两个完全不同的概念。这接近于说“我不在乎你称它为NHibernate还是实体框架”。您需要决定要使用哪一个。
<add name="AcmeDBContext"
     connectionString="data source=[server];
                       initial catalog=Acme;integrated security=True;
                       multipleactiveresultsets=True;App=EntityFramework"
     providerName="System.Data.SqlClient" />