我买以下设计模型:
public class LogModel
{
public class UserActivityLogs
{
[Key]
public int id { get; set; }
//Id of the user
public string userId { get; set; }
//Time of the log
public DateTime time { get; set; }
public LogActions action { get; set; }
}
// Types of actions to log
public class LogActions
{
[Key]
public int id { get; set; }
public string name { get; set; }
public string description { get; set; }
}
}
现在我想知道的是,我需要在Logactions
以及UserActivityLogs
的上下文中添加一个表,还是EF会看到这两个表已链接并创建{{ 1}}表自动?
我是否也正确指定了我的关系?我的目标是我可以定义多种类型的Logactions,然后一个用户日志就会有一个与之关联的日志操作。
答案 0 :(得分:0)
首先,不要使用嵌套类,这是一个不必要的复杂问题。使用命名空间来组织类。
其次,不要为类使用复数名称。类的一个实例代表一个实体。另外,对属性使用CamelCase名称。
第三,是的,实体框架将了解这两个类之间的关联,并创建一个包含两个表和一个外键的数据库模型。
所以这会让你:
namespace MyApp.LogModel
{
public class UserActivityLog
{
[Key]
public int Id { get; set; }
public string UserId { get; set; }
public DateTime Time { get; set; }
public LogAction LogAction { get; set; }
}
public class LogAction
{
[Key]
public int Id { get; set; }
public string Name { get; set; }
public string Description { get; set; }
}
}