Insight.Database 是否继承了 [Schema] 注释?
Does Insight.Database inherit [Schema] annotations?
所以我想我会在我的数据层中尝试一些 clever/stupid。我正在使用 Jon Wagner 的 Insight.Database,但我的大多数 table 都有一组 CRUD 操作。所以我想,为什么不这样做 :
public interface IDataInterface<T>
{
Task<T> SelectAsync(int id);
Task<IEnumerable<T>> SelectAsync();
Task<int> UpsertAsync(T obj);
Task<bool> UpsertManyAsync(IEnumerable<T> list);
Task<bool> DeleteAsync(int id);
Task<bool> DeleteManyAsync(IEnumerable<T> list);
}
然后我想我可以做这样的事情:
[Sql(Schema = "Clients")]
public interface IClientDataInterface : IDataInterface<Client>
{
}
与客户模式中的客户相关的所有存储过程table。
但是,这不起作用,在我最终遇到 paydirt 之前一直在检查 InnerExceptions,我收到以下错误 -
InnerException = {"The stored procedure 'Select' doesn't exist."}
尽管Clients.Select确实存在。
这向我表明基本接口(没有 [Sql] 注释)有一个默认的 [Sql(Schema="dbo")] 是继承和覆盖任何以后的注释。
这样对吗?如果它是正确的,有没有办法禁用基本架构?如果不是,那是怎么回事?
回到这个有点晚了,但是...
没有。 Insight 不继承 [Sql] 注释。
[AttributeUsage(AttributeTargets.Method | AttributeTargets.Class | AttributeTargets.Interface)]
我想这只是那些不会像我们希望的那样起作用的小技巧之一。
所以我想我会在我的数据层中尝试一些 clever/stupid。我正在使用 Jon Wagner 的 Insight.Database,但我的大多数 table 都有一组 CRUD 操作。所以我想,为什么不这样做 :
public interface IDataInterface<T>
{
Task<T> SelectAsync(int id);
Task<IEnumerable<T>> SelectAsync();
Task<int> UpsertAsync(T obj);
Task<bool> UpsertManyAsync(IEnumerable<T> list);
Task<bool> DeleteAsync(int id);
Task<bool> DeleteManyAsync(IEnumerable<T> list);
}
然后我想我可以做这样的事情:
[Sql(Schema = "Clients")]
public interface IClientDataInterface : IDataInterface<Client>
{
}
与客户模式中的客户相关的所有存储过程table。
但是,这不起作用,在我最终遇到 paydirt 之前一直在检查 InnerExceptions,我收到以下错误 -
InnerException = {"The stored procedure 'Select' doesn't exist."}
尽管Clients.Select确实存在。
这向我表明基本接口(没有 [Sql] 注释)有一个默认的 [Sql(Schema="dbo")] 是继承和覆盖任何以后的注释。
这样对吗?如果它是正确的,有没有办法禁用基本架构?如果不是,那是怎么回事?
回到这个有点晚了,但是...
没有。 Insight 不继承 [Sql] 注释。
[AttributeUsage(AttributeTargets.Method | AttributeTargets.Class | AttributeTargets.Interface)]
我想这只是那些不会像我们希望的那样起作用的小技巧之一。