我正在使用 EF6,并且有 2 個不同版本的數據庫 (MsSQL)。1 個版本有一個表 Person 而另一個沒有。我正在覆蓋OnModelCreating并且我使用modelBuilder.Ignore<Person>(); This 來調用其他表的數據庫。我想要完成的是,當我通過 EF 調用實體時,它返回類 Person 的新實例,而不是嘗試連接到數據庫并獲取其數據。例如:using(MyEntity ent = new MyEntity("connectionString"){ var myPerson = ent.Person.FirstOrDefault(); ==> Depending on version, return the DBData or new Person()}
1 回答

繁星點點滴滴
TA貢獻1803條經驗 獲得超3個贊
我假設您可以向上下文的構造函數添加一個布爾參數:
public MyEntity(string connectionString, bool includePerson)
{
_includePersion = includePerson;
}
現在上下文可以有一個屬性Person,或者最好是復數形式People:
public IQueryable<Person> People
{
get => _includePerson
? Set<Person>()
: (new[] { new Person() }).AsQueryable();
}
從技術上講,您現在應該擺脫困境,因為沒有 to/from 導航屬性Person。但是,我擔心這種構造可能會在下游產生比乍一看預期更多的后果。我會盡一切努力避免它。在Person沒有它的情況下向數據庫添加一個空表會好得多。這甚至可以由應用程序本身完成,前提是登錄的數據庫用戶具有所需的 DDL 權限。
- 1 回答
- 0 關注
- 157 瀏覽
添加回答
舉報
0/150
提交
取消