c# - EF 代码首先 List<DateTime> 不创建表

标签 c# .net entity-framework-4 code-first

我正在使用一个实体创建一个非常简单的 EF4 代码优先项目。

public class Activity
{
    public Guid Id { get; set; }
    public string Description { get; set; }
    public List<DateTime> DateDone { get; set; }
    <snip>

    public Activity()
    {
        if(DateDone==null)
            DateDone = new List<DateTime>();
    }
}

我重建我的项目然后运行 ​​MVC3 应用程序和数据库生成(确认,我已经添加和删除列),我的数据被播种(当我修改播种数据时它在屏幕上发生变化)

我能够:

var activity = db.Activities.Find(id);
activity.DateDone = DateTime.Now;
db.SaveChanges();

但是数据没有保存。我已经检查了数据库,因为只有一个表(事件)并且它具有所有适当的字段。我希望它应该有第二个表,ActivityDateDone 有两个字段,ActivityGuid 和 DateDone。

我在完成这项工作时缺少什么?

最佳答案

Entity Framework 不支持原始类型的集合。

您需要定义一个单独的类来保存日期时间。

关于c# - EF 代码首先 List<DateTime> 不创建表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8332183/

相关文章:

c# - 为什么将值转换为 IEnumerable<T> 的行为会根据我初始化值的方式而有所不同?

c# - 将代码重构为辅助类以避免重复,但同时又不影响安全性

entity-framework - 生成 Entity Framework 代码而不生成 EDMX 图

c# - ObjectQuery<T> 或 IQueryable<T>

c# - 如何在我的 C# 项目中找到所有静态变量?

c# - 在构造函数中实例化对象

c# - 为什么我会收到此异常 : "he ' Microsoft. ACE.OLEDB.12。 0' provider is not registered on the local machine"?

.net - C# 3.0 对象初始化中的私有(private) setter 属性

mysql - 如何获取过滤后的列表

c# - Entity Framework 的连接字符串