C# 使用CreateDatabase()时,数据库中缺少表
以下是参数:C# 使用CreateDatabase()时,数据库中缺少表,c#,database,entity-framework,C#,Database,Entity Framework,以下是参数: MyEntities db = new MyEntities(theParameter); 当我将watch添加到db中时,它有许多表,其中包括表tblTestTable。之后,我会: metadata=res://*/Models.My.csdl|res://*/Models.My.ssdl|res://*/Models.My.msl;provider=System.Data.SqlClient;provider connection string='Data Source=
MyEntities db = new MyEntities(theParameter);
当我将watch添加到db中时,它有许多表,其中包括表tblTestTable。之后,我会:
metadata=res://*/Models.My.csdl|res://*/Models.My.ssdl|res://*/Models.My.msl;provider=System.Data.SqlClient;provider connection string='Data Source=[correctIpAddress];Initial Catalog=testDbName;User ID=myUsername;Password=myPassword;MultipleActiveResultSets=True'
在新创建的数据库中没有tblTestTable表。为什么会这样
当我将watch添加到db中时,它有许多表,其中包括表
tblTestTable
我猜您的意思是在名为db
的ObjectContext
实例上的调试器中添加一个watch,您正在监视ObjectSet
s,它们是派生上下文中的属性,其中一个属性名为tblTestTable
,对吗
通常,ObjectSet
和数据库中的表之间没有严格的一对一关系。您的上下文中可以有一个不表示自己表的对象集,例如:
- 如果
/ObjectSet
的实体tblTestTable
是从另一个基本实体派生的,并且此继承映射为每个层次结构的表策略,则两个实体将使用同一个表,通常与基本实体一样命名。(通常不需要为派生实体创建这样一个单独的集合,但这是可能的。)在这种情况下,T
在数据库中没有自己的表tblTestTable
- 单个表可以拆分为多个实体(称为“表拆分”)。上下文中可以有两个或多个对象集,但所有对象集都将使用同一个表
这些只是一些可能的原因。如果看不到模型和关系的详细信息,就很难对您的问题给出更具体的答案。该表没有创建,因为它没有主键。
一旦我设置了它,它就和其他的一起创建了。你在做
AcceptChanges()
?@NikhilAgrawal我不明白。“do AcceptChanges()”是什么意思?
db.CreateDatabase();