2012-07-24 96 views
1

我有三個結構相同的表。我正在使用實體框架。我想創建只接受三種類型的泛型函數。但我不能在類型參數中給出多個類型。有什麼辦法嗎?或者我只想添加基類,如何創建基類,因爲它們是從實體生成的?實體框架 - 如何爲實體類創建基類?

回答

4

最簡單的方法可能不是使用基類,而是使用接口。讓我們假設共同財產是string Name,那麼你可以做

interface IEntityWithName 
{ 
    string Name { get; set; } 
} 

// make sure this is in the same namespace and has the same name as the generated class 
partial class YourEntity1 : IEntityWithName 
{ 
} 

// ditto 
partial class YourEntity2 : IEntityWithName 
{ 
} 

public void DoSomething<T>(T entity) 
    // if you have no common base class 
    where entity : class, IEntityWithName 
    // or if you do have a common base class 
    where entity : EntityObject, IEntityWithName 
{ 
    MessageBox.Show(entity.Name); 
} 

究竟什麼是可能取決於如何生成實體類,和你想在你的程序做什麼。如果你不知道如何適應你的情況,你可以提供更多關於你想要做什麼的信息嗎?

+0

它工作正常。謝謝。我想發送一個類對象列表。怎麼做? – user1548293 2012-07-24 12:05:27

+0

如果你的對象都有相同的類型,你可以使用'public void DoSomething (List entities)where ...',否則你可以使用'public void DoSomething(List entities)' – hvd 2012-07-24 12:24:19

+0

Thanks !. 。 有用。 – user1548293 2012-07-24 13:18:01