EF相当于nHibernate公式的映射

时间:2017-06-27 09:06:48

标签: entity-framework nhibernate

我正在研究一些传统的nHibernte代码,该公司已决定迁移到EF。我已经使用公式映射找到了流畅的映射,并希望在EF(6. *)中复制它。据我所知,公式映射在EF中不可用,但希望有人提供简单的解决方案或解决方法。

简化实体:

public class Department
{
    public virtual Guid Id { get; set; }
    public virtual string Name { get; set; }
    public virtual bool CanChange { get; set; }        
}

简化的nHibernate Map:

public DepartmentMap()
{
    Map(x => x.Name);
    Map(x => x.CanChange)
      .Formula("(select case when count(*) > 0 then 0 else 1 end from Users where Users.placeid = Id)");
}

2 个答案:

答案 0 :(得分:2)

您可以更改数据库吗?

这看起来像是(非持久的)Computed Column的候选人。

添加列然后将其映射为常规属性并将其标记为只读。

您需要为查询创建一个函数,因为它使用另一个表

Enum.values()

答案 1 :(得分:0)

另一种方法是创建一个View,它返回所有部门以及是否可以更改它们。

使用EF进行地图。

与部门建立1对1的加入关系。