Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/asp.net-mvc-3/4.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
Asp.net mvc 3 尝试将实体框架与asp.net MVC3一起使用_Asp.net Mvc 3_Entity Framework - Fatal编程技术网

Asp.net mvc 3 尝试将实体框架与asp.net MVC3一起使用

Asp.net mvc 3 尝试将实体框架与asp.net MVC3一起使用,asp.net-mvc-3,entity-framework,Asp.net Mvc 3,Entity Framework,我正在尝试使用以下教程使EntityFramework与ASP.NET MVC3一起工作: 好的,我有我的数据库,我的.edmx模型,模型类,但我没有得到的第一件事是: 我的DbContext派生类如何知道我的.emdx模型?我不确定在本教程中创建链接的位置可能有几个名称相同的内容SchoolContext,因为连接字符串的上下文很混乱 当我用代码运行我现在得到的东西时: MMContext context = new MMContext(); List<EntityUs

我正在尝试使用以下教程使EntityFramework与ASP.NET MVC3一起工作:

好的,我有我的数据库,我的.edmx模型,模型类,但我没有得到的第一件事是: 我的DbContext派生类如何知道我的.emdx模型?我不确定在本教程中创建链接的位置可能有几个名称相同的内容SchoolContext,因为连接字符串的上下文很混乱

当我用代码运行我现在得到的东西时:

    MMContext context = new MMContext();

    List<EntityUser> testList = (from u in context.Users
                                select u).ToList();
我得到:

System.Data.Edm.EdmEntityType::EntityType“EntityUser”未定义键。定义此EntityType的键

System.Data.Edm.EdmentySet:EntityType:EntitySet�使用者� 是基于类型的�实体用户� 没有定义键的


谢谢您的帮助。

假设您使用的是代码优先的方法,您必须在Users类中定义一个键:

public class User
{
    public int Id { get; set; }
    // ...
}
如Kyle所述,如果您的ID字段未命名为ID,则必须添加[Key]属性:

using System.ComponentModel.DataAnnotations;
public class User
{
    [Key]
    public int u_Id { get; set; }
    // ...
}

假设您使用的是代码优先方法,则必须在Users类中定义一个键:

public class User
{
    public int Id { get; set; }
    // ...
}
如Kyle所述,如果您的ID字段未命名为ID,则必须添加[Key]属性:

using System.ComponentModel.DataAnnotations;
public class User
{
    [Key]
    public int u_Id { get; set; }
    // ...
}

但本教程展示了代码优先的方法。您根本不应该有EDMX文件。或者您是想先将示例转换为数据库还是模型?对不起,我实际上是在先查找数据库,我的意思是我基于现有数据库创建了模型。这方面的一个很好的教程会对我有所帮助。这里是EF>=4.1的简要DB&Model First简介:我刚刚尝试过这一点,但是.tt条目没有看起来很奇怪的图标,因为它们的.cs文件只是空的。但是本教程展示了代码优先的方法。您根本不应该有EDMX文件。或者您是想先将示例转换为数据库还是模型?对不起,我实际上是在先查找数据库,我的意思是我基于现有数据库创建了模型。一个很好的教程会对我有所帮助。这里是EF>=4.1的简要DB&Model First简介:我刚刚尝试了这个方法,但是.tt条目没有图标,看起来很奇怪,因为它们的.cs文件只是空的。对不起,我实际上是在首先查找数据库,我的意思是我基于现有的DB创建了模型。一个很好的教程对我会有帮助。无论如何,在这个代码示例中,什么将Id字段定义为键?因为它是名字Id?因为我猜Id和其他任何名称一样都是一个名称。@用户代码首先查找名为Id的int属性,并将其指定为键。其他属性可以通过添加[Key]属性来设置为Key。我有一个名为u_Id的int字段。。。在我试图遵循的示例中,他通常简单地让他的键用Id完成。我如何在C代码中添加[Key]attibute?如果需要,包括“使用”凯尔:谢谢,我也应该提到这一点。用户:我添加了这个例子。但是你不应该在你的DB布局中使用前缀,我这么做了很长一段时间,这完全是无用的。谢谢你的例子,很高兴知道,尽管我实际上使用的是DB/模型优先的方法,我发现了我实际上缺少的东西。我不能将此标记为答案,因为它不是我主要问题的答案,我也不能将其标记为有用,因为它表明我没有足够的声誉。对不起,我实际上是在首先寻找一个数据库,我的意思是我基于现有数据库创建了模型。一个很好的教程对我会有帮助。无论如何,在这个代码示例中,什么将Id字段定义为键?因为它是名字Id?因为我猜Id和其他任何名称一样都是一个名称。@用户代码首先查找名为Id的int属性,并将其指定为键。其他属性可以通过添加[Key]属性来设置为Key。我有一个名为u_Id的int字段。。。在我试图遵循的示例中,他通常简单地让他的键用Id完成。我如何在C代码中添加[Key]attibute?如果需要,包括“使用”凯尔:谢谢,我也应该提到这一点。用户:我添加了这个例子。但是你不应该在你的DB布局中使用前缀,我这么做了很长一段时间,这完全是无用的。谢谢你的例子,很高兴知道,尽管我实际上使用的是DB/模型优先的方法,我发现了我实际上缺少的东西。我不能将此标记为答案,因为它不是我主要问题的答案,我也不能将其标记为有用,因为它表明我没有足够的声誉。