将外键分配给我的主键

时间:2015-03-13 20:49:58

标签: c# asp.net-mvc-5

我只是一个学习者,当谈到asp.net时,我正在学习mvc5,因为我在我的系统中安装了vs2013。

我的问题就是这样:

我想编写一个简单的应用程序来加快我在asp.net编程中的学习。我目前正在编写的代码对我来说是个问题,作为一个新的asp.net和c#程序员,我无法在应用程序中添加个人资料。

我打开了一个新的asp.net mvc应用程序,并为我自动创建了一些文件夹。现在您同意我的意见,只需要用户名,电子邮件和密码即可注册新应用。我想将一个配置文件页面添加到Microsoft默认创建的同一个数据库中,但我不知道如何添加它。我在我的模型文件夹中创建了一个配置文件类文件,但我甚至不知道如何设置外键以防我想使用其他类中的某个特定实体...

我的代码如下所示...请问如何将其添加到默认数据库并将密钥指定为外键?

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;

namespace WebCHECKING.Models
{
    public class Profile
    {
        public int ProfileID { get; set; }

        public string Firstname { get; set; }

        public string Secondname { get; set; }
        public string Email { get; set; }

        public string Phone { get; set; }

        public string Picture { get; set; }

        public string Facebook { get; set; }

        public string Description { get; set; }

        public DateTime Datejoined { get; set; }
    }
}

1 个答案:

答案 0 :(得分:0)

与创建用于存储配置文件信息的新类相反,您可以使用这些新字段扩展现有的AplicationUser类。看看这个article。实际上在您的项目中引用了该文章(打开IdentityModels.cs)。如果您采用这种方法,您可能希望将其他字段设置为可选,以便用户在注册时不必填写所有内容。

如果您开始使用单独的类来创建配置文件数据,请将using Microsoft.AspNet.Identity;添加到模型中,并引用ApplicationUser,如:public virtual ApplicationUser UserPerson {get; set; }。有关设置控制器中字段值的详细信息,请查看此SO question

- 编辑 -

抱歉,没有看到关于数据库的第一个问题。如果您正在使用Entity Framework,则可以为此模型添加控制器,并使用Entity Framework选项选择带有视图的MVC 5 Controller。这样,EF将为您添加数据库上下文,并支持一堆视图和控制器操作。如果你不想脚手架这样的东西,你可以打开IdentityModels.cs并在public static ApplicationDbContext Create()方法下,添加像public System.Data.Entity.DbSet<WebCHECKING.Models.Profile> Profiles {get; set; }这样的DbSet语句。您还必须运行数据库迁移以创建表。

- 更多编辑 -

如果需要引用另一个类(ApplicationUser除外),只需将数据类型替换为类的名称,如:public profileStuff stuff {get; set; }。 EF会在该类的数据库表中添加一列,为您引用的类指定一个ID。This一系列“入门”视频在这种情况下可能非常有用。

相关问题