[英]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.