我的應用程序使用asp.net 4,C#和實體框架。我的數據庫包含一個表Companies
,它有許多Locations
,而這個表又有許多Devices
。甲Company
鍵接到其當前登錄。使用實體框架按約束表中的列進行過濾
我使用的網格視圖來顯示和編輯Locations
和Devices
單個Company
的aspnet_user。這是很容易的Locations
實現,因爲他們有一個直接鏈接到一個Company
...
LocationListEntityDataSource.AutoGenerateWhereClause = true;
LocationListEntityDataSource.WhereParameters.Clear();
LocationListEntityDataSource.WhereParameters.Add("CompanyGuid", System.Data.DbType.Guid, Tools.Tools.getCompanyGuidString());
但是我不知道如何通過Company
過濾Devices
,因爲他們只需要一個鏈接到一個Location
。我希望用類似如下的東西,但我得到一個異常,指出Location.CompanyGuid
找不到......
DeviceListEntityDataSource.AutoGenerateWhereClause = true;
DeviceListEntityDataSource.WhereParameters.Clear();
DeviceListEntityDataSource.WhereParameters.Add("Location.CompanyGuid", System.Data.DbType.Guid, Tools.Tools.getCompanyGuidString());
如何可以做到這一點任何想法?
這個更少的實體框架問題和更多的建模/模式問題。您應該重新標記(例如,移除不相關的[tag:asp.net]並添加[tag:database-schema])並添加當前模式和實體的圖表。 –
你能描述一下還是最簡單的模型?在你的情況下,爲什麼公司與地點以及設備有一對多的關係。喜歡添加設備首先創建一個位置。然後'location.Devices.Add(設備)。然後'dbconext.Companies.Add(location);' –
「爲什麼公司與地點和設備之間沒有一對多的關係」 - 我假設你的意思是設備以及位置?我已經考慮過這個問題,但還有很多其他表格也與地點相關聯。爲了節省空間,我想避免將大量表格連接到公司,因爲我認爲公司可以從該位置推斷 – user1374841