2009-05-21 107 views
1

我有一個客戶端/服務器應用程序,其中客戶端和服務器有一些公用表(它們作爲應用程序的一部分保持同步)。多個DBML文件 - 類型共享?

我們目前將這些表(即FileDetails)存儲在Shared.dbml文件中。到目前爲止,任何返回FileDetails集合的結果的存儲過程都被放置在Shared.dbml中(即使它是一個Server-only)SP。

我發佈了LINQ to SQL支持DBML上的基類屬性,我想也許我可以有一個Server.dbml,它擴展了我的Shared.dbml。從理論上講,這將爲我提供一個包含所有共享表和SP以及服務器特定元素的ServerDataContext。通常在SQL設計器中,我會拖放SP,通過FileDetails表來顯示這是返回的內容,但是由於類在不同的DBML中,這是不可能的,而在XML中,我不認爲ElementType IDREF =「1」的方式將工作(如裁判需要指向另一個文件)

我發現我能找到解決這個問題通過編輯個XML返回手動鍵入:

<Function Name="dbo.SELECT_FTS_FILES" Method="SELECT_FTS_FILES"> 
    <Return Type="ISingleResult&lt;DataTypes.FileDetails&gt;" /> 
</Function> 

我的問題是,有沒有人有這種方法的經驗,並可以指向我更多的資源?是否有任何明顯的缺點,它(不是比手動更新XML等)

所有反饋歡迎

回答

2

你可以從你的DataContext繼承。然而,在你的新數據上下文中,你將無法使用linq設計器,你必須手動編寫代碼。

是否有任何理由你不想要兩個datacontext?

繼承和LinqToSql在一般情況下一起玩並不好。如果你有很深的需求,你應該看看另一個像NHibernate這樣的ORM。

+0

我想將它們分開,只是爲了確保編譯檢查客戶端代碼,不能調用服務器的存儲過程。我想這可能帶來的好處不大,也許不值得。 – MattH 2009-05-21 12:49:08