2011-11-10 17 views
0

(對不起我的英文不好)EF代碼只在客戶端上繼承

在Silverlight 4 + RIA服務+ EF4代碼只應用我有我的DbContext包含一個「IsActive」領域的一些類 - 我想從客戶那裏知道一個實體是否有這個領域並得到它。我首先想到的是使用一個接口:

public interface IHasActiveField 
{ 
    bool IsActive {get; set;} 
} 

public class Data: IHasActiveField 
{ 
    public bool IsActive {get; set;} 
} 

服務器上,但在客戶端上這項工作精細,RIA生成的代碼沒有我的界面中的任何引用,所以我無法測試if (obj is IHasActiveField) - 發生,如果同樣的我嘗試從IsActive字段的基類繼承,在客戶端,類Data總是繼承自Entity - 我可能可以使用反射來查看字段是否存在,或者只是測試每種類型(if (obj is Data)),但如果更多優雅的方式是可能的,它會更好:)

回答

1

以下博客聽起來像你想要的。

「所有你需要做的就是使用部分類模型,並將其命名與.shared.cs(或.shared.vb),該文件將自動複製到Silverlight項目中的文件,所以無論它在哪裏都會被保留在客戶端,所以在該文件中的所有接口實現都完成了。「 http://jeffhandley.com/archive/2009/03/30/ria-services-custom-interfaces.aspx

+0

是的,就是這樣,謝謝:D – Leo