实体框架在db上下文中定义表

时间:2014-01-31 08:19:33

标签: asp.net-mvc entity-framework model

我买以下设计模型:

 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,然后一个用户日志就会有一个与之关联的日志操作。

1 个答案:

答案 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; }
    }     
}