1
我想包括標量函數的值作爲實體的只讀屬性,因爲我可以將該值包含在過濾器中,這樣的事情是可能的?是否Entity框架支持用戶定義的函數作爲標量屬性
我想包括標量函數的值作爲實體的只讀屬性,因爲我可以將該值包含在過濾器中,這樣的事情是可能的?是否Entity框架支持用戶定義的函數作爲標量屬性
的解決方案是下面的示例中添加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;
}
在EF4中,您可以在相同的名稱空間中定義與實體框架類相同名稱的部分類,併爲其添加只讀屬性。我剛剛做到這一點,以公開連接的實體對象的描述作爲原始對象的只讀屬性。
namespace same.as.the.data.model
{
public partial class Order
{
public string CustomerName
{
get { return Customer.Name; }
}
}
}
謝謝,但顯着點是標量函數的映射(我的意思是在SQL Server中的UDF) – 2011-01-12 13:51:04
是啊,看起來我誤解了你原來的文章,因爲我一心想解決工作中的特定問題。既然它在你腦海中,那麼閱讀一件東西和聽到另一件東西就是舊事。我的錯。 – fractos 2011-03-29 17:22:08