gpt4 book ai didi

c# - getById 函数在存储库模式中获取一个或多个键

转载 作者:太空宇宙 更新时间:2023-11-03 12:03:25 26 4
gpt4 key购买 nike

因此,我使用带有 asp.net core 和 Entity Framework 6 的存储库模式从服务层访问数据库。问题是我有一个具有复合键的实体,而通用存储库采用 int 作为参数,因此我无法将多个变量传递给 find()。

我尝试将 int 更改为对象并在需要时发送带有 2 个 ID 的对象,但这似乎不起作用。

public interface IRepository<T> where T : class 
{
IEnumerable<T> GetAll();
T GetById( int id);
void Update(T entity);
void Create(T entity);
void Delete(T entity);
}

最佳答案

你可以让它和find方法的签名相同

public virtual TEntity Find(params object[] keyValues);

它接受键值作为 object 类型的 params

就是这样

T GetById(params object[] keyValues);

所以在这种情况下,它将接受任意数量的任意类型的主键

例如

new customerRepo().GetById(123)
new customerRepo().GetById(123,1)

等等

关于c# - getById 函数在存储库模式中获取一个或多个键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56098239/

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