Entity framework 4 实体框架是否支持用户定义的函数作为标量属性

Entity framework 4 实体框架是否支持用户定义的函数作为标量属性,entity-framework-4,Entity Framework 4,我想将标量函数的值包含为实体的只读属性,因为我可以将该值包含在筛选器中,这是可能的吗?在EF4中,您可以在同一命名空间中定义与实体框架类同名的分部类,并向其添加只读属性。我这样做是为了将连接实体对象的描述公开为原始对象的只读属性 namespace same.as.the.data.model { public partial class Order { public string CustomerName { get {

我想将标量函数的值包含为实体的只读属性,因为我可以将该值包含在筛选器中,这是可能的吗?

在EF4中,您可以在同一命名空间中定义与实体框架类同名的分部类,并向其添加只读属性。我这样做是为了将连接实体对象的描述公开为原始对象的只读属性

namespace same.as.the.data.model
{
    public partial class Order
    {
        public string CustomerName
        {
            get { return Customer.Name; }
        }
    }
}

在EF4中,您可以在同一命名空间中定义与实体框架类同名的分部类,并向其添加只读属性。我这样做是为了将连接实体对象的描述公开为原始对象的只读属性

namespace same.as.the.data.model
{
    public partial class Order
    {
        public string CustomerName
        {
            get { return Customer.Name; }
        }
    }
}

解决方案是添加定义查询,如以下示例所示:


    <!-- SSDL content -->  
      <EntitySet Name="Emp" EntityType="TestModel.Store.Emp" >
        <DefiningQuery>
          SELECT EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, COMM, DEPTNO, dbo.MyFunc(DEPTNO) AS DNAME FROM EMP
        </DefiningQuery>
      </EntitySet>
      <EntityType Name="Emp">
        <Key>
          <PropertyRef Name="EMPNO" />
        </Key>
        <Property Name="EMPNO" Type="int" Nullable="false" />
    ...
        <Property Name="DNAME" Type="varchar" MaxLength ="20" />
      </EntityType>
    ...
    <!-- CSDL content -->
    ...
        <EntityType Name="Emp">
          <Key>
            <PropertyRef Name="EMPNO" />
          </Key>
          <Property Name="EMPNO" Type="Int32" Nullable="false" />
    ...
          <Property Name="DNAME" Type="String" MaxLength="20" Unicode="false" FixedLength="false" />
        </EntityType>
    <!-- C-S mapping content -->
    ...
            <ScalarProperty Name="EMPNO" ColumnName="EMPNO" />
    ...
            <ScalarProperty Name="DNAME" ColumnName="DNAME" />
    ...

解决方案是添加定义查询,如以下示例所示:


    <!-- SSDL content -->  
      <EntitySet Name="Emp" EntityType="TestModel.Store.Emp" >
        <DefiningQuery>
          SELECT EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, COMM, DEPTNO, dbo.MyFunc(DEPTNO) AS DNAME FROM EMP
        </DefiningQuery>
      </EntitySet>
      <EntityType Name="Emp">
        <Key>
          <PropertyRef Name="EMPNO" />
        </Key>
        <Property Name="EMPNO" Type="int" Nullable="false" />
    ...
        <Property Name="DNAME" Type="varchar" MaxLength ="20" />
      </EntityType>
    ...
    <!-- CSDL content -->
    ...
        <EntityType Name="Emp">
          <Key>
            <PropertyRef Name="EMPNO" />
          </Key>
          <Property Name="EMPNO" Type="Int32" Nullable="false" />
    ...
          <Property Name="DNAME" Type="String" MaxLength="20" Unicode="false" FixedLength="false" />
        </EntityType>
    <!-- C-S mapping content -->
    ...
            <ScalarProperty Name="EMPNO" ColumnName="EMPNO" />
    ...
            <ScalarProperty Name="DNAME" ColumnName="DNAME" />
    ...

谢谢,但最突出的一点是标量函数的映射(我指的是SQL Server中的UDF)是的,看起来我误解了你原来的帖子,因为我一心想解决工作中的一个特定问题。读一件事,听另一件事,因为它在你的脑海里。我的错。谢谢,但最突出的一点是标量函数的映射(我指的是SQL Server中的UDF)是的,看起来我误解了你原来的帖子,因为我一心想解决工作中的一个特定问题。读一件事,听另一件事,因为它在你的脑海里。我的错。