2010-01-15 71 views
0

我有一個名爲Vendor的列名爲Invoices的表。供應商列是供應商表的FK引用,PK是Id。重複屬性名稱,但數據類型不同

我的dbml創建適當的對象...發票和供應商。但是,我的發票對象同時具有供應商屬性(作爲字符串)和供應商1屬性(作爲供應商對象)。

我認爲這將與我的列名匹配引用的對象名稱,但將列更改爲VendorId並重新創建所有的dbml對象後,重複的屬性仍然存在。 看起來是因爲列匹配對象...它創建供應商以保存字符串值,然後供應商1引用供應商對象。爲什麼它不只是創建單個對象引用?

謝謝

回答

1

它不是一個重複的屬性 - 它是兩個不同的屬性有兩個不同的目的。

供應商屬性對應於數據庫中列中的數據。

Vendor1屬性表示外鍵關係,即與另一個表的連接。它被稱爲Vendor1,因爲Vendor這個名稱已經被採用(使用VendorId作爲列名是個好主意)。除非實際使用Vendor1對象,否則默認情況下不會提取Vendor1對象。讓此屬性可用可以更容易地制定查詢,否則這些查詢會要求您指定連接。

這兩個屬性都對您的對象有用。


要回答你的問題更新:

的LINQ有反正來獲取供應商ID是否使用與否 - 以防萬一,你可能會使用它。由於它已經被提取,所以它在界面中也是可見的,這似乎很方便。如果您寫obj.Vendor1.Id而不是obj.VendorId,則會導致Vendor1對象不必要地從數據庫中獲取。所以這也有一個性能意義。

+0

感謝您的回覆。你的回答就是我的想法。也許這只是我......但屬性附加的整個「1」讓我感到害怕... – Jason 2010-01-19 18:43:04

相關問題