我試圖對我們的實體框架模型進行一些更改,目前這給我造成了很大的麻煩 - 這個想法是將兩個數據庫之間的1:1關係變成多關係。如果您在EF中進行更改,然後重新生成數據庫,則它生成的用於表示此關係的對象(不出意外)是EntityCollection而不是單個類型對象。爲什麼EntityCollection有時會暴露擴展方法,有時不會?
目前,我已經運行了所有這些更改生成的錯誤,並將DatabaseObject引用更改爲DatabaseObject.ElementAt(0),以便我可以構建它。然而,一組引用似乎不會給我EntityCollection上的擴展方法,它允許我們對集合進行操作,比如ElementAt(),Select(),First()等等,我看不出爲什麼。
在這項工作中的情況下,從一個基類,然後繼承生成對象:
_task = _customersRepository.GetDeepTask(taskId);
_customerService = _task.CustomerServiceFeature.CustomerService;
//then in class which inherits above code
string conStr = customerService.DatabaseObject.ElementAt(0).GetConnectionString(_customerService);
但是這並沒有給我的擴展方法的情況下,它是這樣產生的:
public void Execute(ScheduledTask task)
{
CustomerService service = task.CustomerServiceFeature.CustomerService;
//this errors and doesn't offer extension methods
string ConnectionString = service.DatabaseObject.GetConnectionString(service);
}
我看不出爲什麼這兩個實例的行爲不同?
乾杯, 馬特
謝謝。我是積極的,我試圖沒有效果 - 但嘗試了第二次,它工作正常。 VS第一次肯定會有些滯後,謝謝你鼓勵我再看一次! – 2011-01-10 11:22:59