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)]

我想这只是那些不会像我们希望的那样起作用的小技巧之一。