1
我想将TimeZoneInfo类型的模型属性映射到数据库中的列。在NHib中,我只是做了一个IUserType“TimeZoneInfoString”来回转换,然后使用typedef。我如何使用Entity Framework 4.0来完成这种工作?EF4相当于NHibernate IUserType
我想将TimeZoneInfo类型的模型属性映射到数据库中的列。在NHib中,我只是做了一个IUserType“TimeZoneInfoString”来回转换,然后使用typedef。我如何使用Entity Framework 4.0来完成这种工作?EF4相当于NHibernate IUserType
实体框架不等同于NHibernate的用户类型。您必须在实体中为其创建单独的属性,并仅映射字符串属性。 Somethink like:
public partial class MyEntity
{
public TimeZoneInfo TimeZone
{
get
{
return Parse(TimeZoneInfoString);
}
set
{
TimeZoneInfoString = value.ToString();
}
}
}
如果这个类是你自动生成的实体的一部分。 TimeZoneInfoString
属性映射在您的实体中,Parse
和ToString
包含您的转换逻辑。
这是如何影响查询的?例如,context.MyEntities.Where(e => e.TimeZone = TimeZoneInfo.Local); – 2011-03-27 19:49:19
不好。你不能从部分类中查询属性。您必须查询该字符串属性。 – 2011-03-27 19:53:45
嗯,EF团队似乎很喜欢它。我想我们可以希望在未来有一个解决方案。感谢您的回应。 – 2011-03-27 19:58:43