NHibernate IUserType的EF4当量

NHibernate IUserType的EF4当量,nhibernate,entity-framework-4,iusertype,Nhibernate,Entity Framework 4,Iusertype,我想将TimeZoneInfo类型的模型属性映射到数据库中的列。在NHib中,我只是制作了一个IUserType“TimeZoneInfo字符串”,它来回转换,然后使用一个typedef。如何使用Entity Framework 4.0执行此类工作?Entity Framework没有与NHibernate的用户类型等效的功能。必须在实体中为其创建单独的属性,并仅映射字符串属性。有些人认为: public partial class MyEntity { public TimeZoneI

我想将TimeZoneInfo类型的模型属性映射到数据库中的列。在NHib中,我只是制作了一个IUserType“TimeZoneInfo字符串”,它来回转换,然后使用一个typedef。如何使用Entity Framework 4.0执行此类工作?

Entity Framework没有与NHibernate的用户类型等效的功能。必须在实体中为其创建单独的属性,并仅映射字符串属性。有些人认为:

public partial class MyEntity
{
    public TimeZoneInfo TimeZone
    {
        get
        {
            return Parse(TimeZoneInfoString);
        }
        set
        {
            TimeZoneInfoString = value.ToString();
        }
    }
}

其中该类是自动生成实体的一部分
TimeZoneInfo String
是实体中的属性映射,并且
Parse
ToString
包含您的转换逻辑。

这对查询有何影响?例如,context.myenties.Where(e=>e.TimeZone=TimeZoneInfo.Local);非常无法从分部类查询属性。您必须查询该字符串属性。嗯,EF团队似乎很喜欢它。我想我们可以希望将来有一个解决办法。谢谢您的回复。您知道这是否可能影响EF的查询表达式解析吗?对不起,我不确定您所说的查询表达式解析到底是什么意思?