Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/335.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在实体数据框架的方法中使用泛型_C#_Generics - Fatal编程技术网

C# 在实体数据框架的方法中使用泛型

C# 在实体数据框架的方法中使用泛型,c#,generics,C#,Generics,我想创建一个方法,我可以将某些通用信息传递给它,但似乎无法确定在向其中传递实体框架表时使用什么。这里有一个愚蠢的例子来演示不使用泛型,但我们想编写一个泛型方法,我们可以将任何实体数据框架表类型传递到其中 例如 公共无效无效无效(可观察收款账户) { foreach(账户中的账户a) { 系统.诊断.调试.写线(a.说明); } } 任何帮助都将不胜感激 谢谢 James.按EF表类型,您是指DbSet 您使用的是POCO实体吗?不,在本例中,这些类型直接来自上下文。这没有意义。我假设您有POC

我想创建一个方法,我可以将某些通用信息传递给它,但似乎无法确定在向其中传递实体框架表时使用什么。这里有一个愚蠢的例子来演示不使用泛型,但我们想编写一个泛型方法,我们可以将任何实体数据框架表类型传递到其中

例如

公共无效无效无效(可观察收款账户)
{
foreach(账户中的账户a)
{
系统.诊断.调试.写线(a.说明);
}
}
任何帮助都将不胜感激

谢谢


James.

按EF表类型,您是指
DbSet


您使用的是POCO实体吗?不,在本例中,这些类型直接来自上下文。这没有意义。我假设您有POCO实体,因为微软不再推荐STE。考虑到这一点,为了创建一个通用方法来处理任何类型的实体,我建议让您的实体类实现一个公共接口。类似于
IEntity
,那么您可以只让函数签名
public void notusable(observedcollection entities){…}
或者,让它成为generic
public void notusable(observedcollection entities),其中T:IEntity
不确定-也许我确定。如果我可以用它来代替我的示例中的“Account”类型,那可能就是它了-谢谢你。你使用的是
DbContext
?莫霍-是的,我们是。我们允许VS直接从现有数据库创建上下文。然后,我们从中引用各种EF实体。
    public void NotUseful(ObservableCollection<Account> account)
    {
        foreach (Account a in account)
        {
            System.Diagnostics.Debug.WriteLine(a.Description);
        }
    }
public void SomeMethod<T>( DbSet<T> dbSet )
{
    ...
}
SomeMethod( dbContextInstance.Accounts );