簡體   English   中英

Insight.Database是否繼承[Schema]注釋?

[英]Does Insight.Database inherit [Schema] annotations?

所以我想我會在我的數據層中嘗試一些聰明/愚蠢的東西。 我正在使用Jon Wagner的Insight.Database,但我的大多數表都有一組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>
{

}

與客戶端架構中的客戶端表相關的所有存儲過程。

但是,這不起作用,並且直到我最終點擊paydirt時才通過InnerExceptions,我得到以下錯誤 -

InnerException = {“存儲過程'選擇'不存在。”}

即使Clients.Select肯定存在。

這向我表明基接口(沒有[Sql]注釋)的默認值為[Sql(Schema =“dbo”)],它是繼承的,並覆蓋任何后來的注釋。

這是正確的嗎? 有沒有辦法禁用基本架構,如果它是正確的? 如果沒有,發生了什么?

有點遲到了,但......

不。 Insight不會繼承[Sql]注釋。

[AttributeUsage(AttributeTargets.Method | AttributeTargets.Class | AttributeTargets.Interface)]

我想這只是那些不能按照我們希望的方式工作的好小動作之一。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM