gpt4 book ai didi

c# - 可以由数据库类派生的抽象类

转载 作者:行者123 更新时间:2023-11-30 16:05:56 27 4
gpt4 key购买 nike

这是我的抽象类:

namespace MusicStoreApp.BLL.Master
{
public abstract class Master<T>
{
MusicStoreEntities db = new MusicStoreEntities();
public void Add(T item)
{
db.T.Add(item);
db.SaveChanges();
}
}
}

这是我在其他类中的目标输出:

public class AlbumRepository : Master<Album>
{
public void Add(Album item)
{
db.Albums.Add(item);
db.SaveChanges();
}
}

public class ArtistRepository : Master<Artist>
{
public void Add(Artist item)
{
db.Artists.Add(item);
db.SaveChanges();
}
}

我想在这里做的是,我应该创建一个可重用的类似接口(interface)的类。因此,我只需键入 T 引用的名称,它将为我创建其余代码。

最佳答案

您的示例设置方式无法正常工作,因为 T 需要指向两个不同的类(特定实例和包含该类的 DbSet)。相反,试试这个:

namespace MusicStoreApp.BLL.Master
{
public abstract class Master<T>
{
MusicStoreEntities db = new MusicStoreEntities();
public void Add(T item)
{
db.Entry(item).State = System.Data.Entity.EntityState.Added;
db.SaveChanges();
}
}
}

关于c# - 可以由数据库类派生的抽象类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32936206/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com