Code First域类

时间:2014-01-06 19:02:27

标签: c# asp.net asp.net-mvc ef-code-first entity-framework-6

我是ASP.Net MVC和EF Code First的新手。我想创建一个专业的音乐分享网站。但我担心如果我在Code First中是真的。我也想使用简单的成员资格或你建议的任何其他成员资格,我想在我的解决方案中使用分层。我应该有以下实体:

namespace MusicSite.Models
{
    public class Media
    {
        public int Id { get; set; }
        public MediaType MediaType { get; set; }
        public string  FilePath { get; set; }
        public string Title { get; set; }
    }
}

namespace MusicSite.Models
{
    public enum MediaType
    {
        MP3=1,
        MusicVideo=2,
        Photo=3
    }
}

namespace MusicSite.Models
{
    public class MP3:Media 
    {
        public Artist Artist { get; set; }
    }
}

namespace MusicSite.Models
{
    public class Artist
    {
        public User User { get; set; }
    }
}

namespace MusicSite.Models
{
    public class User
    {
        public int Id { get; set; }
        public string Username { get; set; }
        public string Password { get; set; }
        public string FirstName { get; set; }
        public string LastName { get; set; }
    }
}

我不知道如何联系这些实体。你能帮忙吗?

1 个答案:

答案 0 :(得分:0)

首先将您的实体与模型相关联,例如:

public class Media
{
    public Artist Artist { get; set; }
}

public class Artist
{
    public int Id { get; set; }
    public string Name { get; set; }
}

如果允许EF根据此模型生成数据库,您会发现Media表将包含一个名为Artist_Id的列,它是Artist的外键引用} table。

如果您决定并行创建数据库(例如,手动创建),则需要设计数据库以正确利用EntityFramework Conventions,或使用Data Annotations或{ {3}} ..

此时我的建议 - 如果您真的希望进行代码优先开发 - 将创建类并使用EF EntityFramework Fluent Mappings