jaf*_*ffa 34 ef-code-first entity-framework-4.1
有没有在EF代码中首先使用Enums的标准方法?似乎有一些例子使用enum的包装类.
但是,我希望能够定义枚举并使用数据库初始化程序将枚举值也接种到数据库中.如果我必须从枚举中手动播种数据库表,那么定义枚举和创建包装器似乎没什么意义.
Ser*_*eit 71
不幸的是,enumsEF 4.1本身不支持.这是一篇关于如何处理它们的着名文章:在EF 4上伪造枚举.但是,它需要一个包装器.
然而,有一种更简单的方法来映射EF 4中的枚举:只需在类上创建一个int属性来表示枚举的int值.那是EF应该映射的属性,然后有一个"迷你包装"属性,允许你使用枚举.
public class Appointment
{
public int ID { get; set; }
public string Description { get; set; }
// This property will be mapped
public int DayOfWeekValue { get; set; }
public DayOfWeek Day
{
get { return (DayOfWeek) DayOfWeekValue; }
set { DayOfWeekValue = (int) value; }
}
}
public enum DayOfWeek
{
Monday,
Tuesday,
Wednesday,
Thursday,
Friday,
Saturday,
Sunday
}
Run Code Online (Sandbox Code Playgroud)
在生成数据库时,EF会很乐意忽略它不知道如何映射的任何类型,但是将映射int属性.
注意:这是直接来自我对另一个问题的回答enum和EF问题:EF 4.1 Code First - 将enum包装器映射为复杂类型
Vin*_*nyG 19
现在支持:http://blogs.msdn.com/b/adonet/archive/2011/06/30/announcing-the-microsoft-entity-framework-june-2011-ctp.aspx
Microsoft Entity Framework 2011年6月CTP引入了新的运行时和设计时功能.以下是一些新的运行时功能:
- 该枚举数据类型,现在在实体框架可用.您可以使用Visual Studio中的实体设计器为具有Enum属性的实体建模,或使用Code First工作流定义具有Enum对象作为属性的实体.您可以像使用任何其他标量属性一样使用您的Enum属性,例如在LINQ查询和更新中...
Visual Studio中的实体框架设计器有几个新功能:
- 实体设计器现在支持从设计器表面创建枚举,空间数据类型和表值函数 ...
| 归档时间: |
|
| 查看次数: |
18930 次 |
| 最近记录: |