2010-06-16 59 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

相關問題