2010-06-16 22 views

回答

1

的解决方案是下面的示例中添加DefiningQuery像:


    <!-- 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" /> 
    ... 

的使用例如:

using(TestEntities4 db = new TestEntities4()) { 
    var q = from e in db.Emp where e.DNAME == "RESEARCH" select e; 
} 
0

在EF4中,您可以在相同的名称空间中定义与实体框架类相同名称的部分类,并为其添加只读属性。我刚刚做到这一点,以公开连接的实体对象的描述作为原始对象的只读属性。

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

谢谢,但显着点是标量函数的映射(我的意思是在SQL Server中的UDF) – 2011-01-12 13:51:04

+0

是啊,看起来我误解了你原来的文章,因为我一心想解决工作中的特定问题。既然它在你脑海中,那么阅读一件东西和听到另一件东西就是旧事。我的错。 – fractos 2011-03-29 17:22:08

相关问题