我是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; }
}
}
我不知道如何联系这些实体。你能帮忙吗?
答案 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。