Entity framework 开发将定义.mdf数据库的实体框架类
我正在尝试开发实体框架类,该类将定义一个已经创建并填充的.mdf数据库,最终实际创建并填充它 错误: 在模型生成过程中检测到一个或多个验证错误: testclass.test::EntityType“test”未定义键。定义此EntityType的键。Entity framework 开发将定义.mdf数据库的实体框架类,entity-framework,sql-server-express,Entity Framework,Sql Server Express,我正在尝试开发实体框架类,该类将定义一个已经创建并填充的.mdf数据库,最终实际创建并填充它 错误: 在模型生成过程中检测到一个或多个验证错误: testclass.test::EntityType“test”未定义键。定义此EntityType的键。 testData:EntityType:EntitySet“testData”基于未定义键的类型“test” 代码: 使用System.Data.Entity; 命名空间测试类 { 公开课考试 { 公共int idt{get;set;} 公共字符
testData:EntityType:EntitySet“testData”基于未定义键的类型“test” 代码:
使用System.Data.Entity;
命名空间测试类
{
公开课考试
{
公共int idt{get;set;}
公共字符串日期时间{get;set;}
公共字符串col1{get;set;}
公共字符串col2{get;set;}
公共字符串col3{get;set;}
}
公共类TestDbContext:DbContext
{
公共DbSet testData{get;set;}
}
公共类测试库
{
公共列表Gettest()
{
TestDbContext TestDbContext=新的TestDbContext();
返回testDbContext.testData.ToList();
}
}
}
连接字符串:
<connectionStrings>
<add name="TestDbContext" connectionString="Data Source=.\SQLEXPRESS;Integrated Security=SSPI;AttachDBFilename=C:\folders\testclass\testclass\App_Data\Data.mdf;User Instance=true;" providerName="System.Data.SqlClient" />
</connectionStrings>
您的代码存在一些问题:
- 主要原因是实体上缺少主键:如果某些键的名称与约定相匹配,EF可以推断出它们的名称:“Id”、“Id”、“testId”。。。因此,请使用其中一个标准名称,或使用
属性将属性明确标记为主键:[key]
[Key] public int idt { get; set; }
- 要确保正确清理由
分配的资源,应使用DbContext
块将其用法包装在
中:
using (TestDbContext testDbContext = new TestDbContext()) { return testDbContext.testData.ToList(); }
- 在.Net中,命名约定是:CamelCase用于除局部变量和字段以外的所有内容;所以
应该是testclass
,testclass
应该是col1
,col1
应该是testData
testData
using (TestDbContext testDbContext = new TestDbContext())
{
return testDbContext.testData.ToList();
}