小编Mik*_*nis的帖子

Subsonic 3.0.0.3不为存储过程生成参数

我有一个带有一堆存储过程的SQL Server 2008数据库.当我使用Subsonic 3.0.0.3提供的ActiveRecord模板时,它会为我的所有存储过程生成方法,但它们没有任何参数.我是服务器上的dbo,可以执行存储过程,而没有来自Management studio的问题.

示例存储过程

CREATE PROCEDURE [dbo].[prc_Sample]
    @FileName   VARCHAR(50)
AS
BEGIN
    -- SET NOCOUNT ON added to prevent extra result sets from
    -- interfering with SELECT statements.
    SET NOCOUNT ON;

    IF EXISTS ( SELECT * FROM Sample WHERE FileName = @FileName )
    BEGIN
        RETURN -1
    END

    RETURN 0

END
Run Code Online (Sandbox Code Playgroud)

样本生成方法

public StoredProcedure prc_Sample(){
    StoredProcedure sp=new StoredProcedure("prc_Sample",this.Provider);
    return sp;
}
Run Code Online (Sandbox Code Playgroud)

如果我检查SQLServer.ttinclude,我可以看到所有获取存储过程的方法都存在,但由于某种原因它们没有生成.这不是存储过程名称中有下划线的问题 - 这可以在有和没有下划线的情况下被破坏.

任何想法或任何人都知道如何调试模板文件?

subsonic templates stored-procedures subsonic3

8
推荐指数
1
解决办法
1389
查看次数

可以安全地在UI上的同步方法中运行异步委托吗?

如果我有一个带有同步方法的应用程序,在UI线程上调用异步方法是否安全,或者是否存在问题或潜在的死锁情况?我知道调用Wait肯定会引起问题,但我觉得这样可能会好起来的.

public void MyMainMethod(){
  var getResult = Task.Run(async () => { await getResultAsync(); }).Result;
  myLabel.Text = getResult;
}
Run Code Online (Sandbox Code Playgroud)

我可以毫无问题地在UI线程上成功运行,但我觉得我可能会遗漏某些东西.我知道我可以使用Task和ContinueWith,但在这个例子中,我想在退出同步方法之前等待async方法的结果.

更新/澄清

在上面的示例中,假设MyMainMethod是重写的方法或属性等,并且不能修改为异步.

c# async-await

6
推荐指数
1
解决办法
1047
查看次数

正确中止或取消PostAsync

使用HttpClient时是否有保证取消帖子的方法?我目前有一个调用PostAsync,我试图使用cancellationToken取消,但它似乎并没有实际中止/停止操作.我仍然可以看到我上传的图片已正确发布.

我在这里做错了还是HttpClient可能在上传之前没有处理取消令牌?

var sc = new StreamContent(uploadFile.Data);
content.Add(sc, uploadFile.FieldName, uploadFile.FileName);

var request = new HttpRequestMessage
{
    RequestUri = new Uri(ApiImageUrlUpload),
    Content = content
};

request.Headers.TryAddWithoutValidation("User-Agent", _sessionManager.UserAgent);
request.Headers.TransferEncodingChunked = true;

using(cancellationToken.Register(() => httpClient.CancelPendingRequests()))
    httpResponse = await HttpClient.PostAsync(new Uri(ApiImageUrlUpload), content, cancellationToken);
Run Code Online (Sandbox Code Playgroud)

.net c# dotnet-httpclient xamarin

6
推荐指数
1
解决办法
974
查看次数