我是Entity Framework的新手。我正在使用现有数据库,并且表没有定义主键。当我使用实体框架时,我得到错误"表/视图'没有定义主键。已推断密钥,并将定义创建为只读表/视图。"。我查了几个堆栈溢出解决方案/谷歌,我还有一些问题,
谢谢,
答案 0 :(得分:9)
我在戴维斯博客(下面的链接)中找到了一个解决方法来解决这个错误,我会把它粘贴在这里。 http://www.ericsdavis.net/index.php/2009/03/14/entity-framework-and-primary-key-inference/
保存并关闭.edmx文件。
它对我来说就像一个魅力,希望它有所帮助。
答案 1 :(得分:0)
您需要做的就是告诉您的POCO使用哪个列作为主键 如果您的表有IDENTITY列,请告诉它使用它。
[Table("POCOS")]
class POCO {
[Key]
int theIdentityColumn {get;set;}
{
答案 2 :(得分:0)
在entityframework中,如果要在任何列上分配主键,请在类的属性上写[Key]。
public class Student
{
[Key]
public int StudentKey { get; set; }
public string StudentName { get; set; }
}
and in Entityframework you donot write any thing just use Below class that create automatic Primarykey
Class student
{
public int id {get;set}
public string Name {get;set}
}
more detail why should this happen read below article
[Entity Framework][1]
答案 3 :(得分:-1)
当我在项目中创建要使用的视图时,我遇到了类似的问题
创建之后,我更新了.edmx
和
表/视图'没有定义主键。
我清理了我的解决方案,重建了,关闭了Visual Studio并重新启动它 之后,我重复了清洁和重建解决方案的过程,错误消失了。