小编Gar*_*ely的帖子

从WebAPI 2端点返回自定义HTTP状态代码

我正在使用WebAPI 2中的服务,端点当前返回一个IHttpActionResult.我想返回一个状态代码422,但因为它不在HttpStatusCode枚举中,所以我不知道如何发送它,因为所有的构造函数都需要一个参数HttpStatusCode

现在,我正在回归BadResult(message),但返回422+消息对我的客户来说会更具描述性和实用性.有任何想法吗?

c# http-status-code-404 asp.net-web-api

49
推荐指数
2
解决办法
4万
查看次数

使用虚拟数据创建DataTable对象

我正在尝试将DataTable数据绑定到手风琴,我发现如果我使用表适配器从数据库中检索DataTable它完全绑定到手风琴但是我想要做的是创建一个虚拟表(用于测试目的,如果我无法访问我的数据库)创建虚拟表的代码如下:

    DataTable table2 = new DataTable("articletable");
    table2.Columns.Add("articleID");
    table2.Columns.Add("title");
    table2.Columns.Add("content");

    DataRow row = table2.NewRow();
    row[0] = "1";
    row[1] = "article name";
    row[2] = "article contents go here";
    table2.Rows.Add(row);
Run Code Online (Sandbox Code Playgroud)

当我尝试数据绑定该表但手风琴不显示.我可以将它绑定到gridview或detailsview但不能将其绑定到手风琴上.

c# data-binding ajax accordion ajaxcontroltoolkit

10
推荐指数
1
解决办法
3万
查看次数

如何防止Entity Framework将FileStream列加载到字节数组中?

我正在开发一个文件存储应用程序,我们已将FileStream类型合并到我们的数据库中.该系统有望支持大型文件.应用程序的一部分允许批量上载多个文档.然后,这些文档必须链接到系统内的其他实体.

一个页面旨在显示未链接的文档,以允许用户将文档一次链接到实体.在对上载过程进行一些负载测试之后,我们发现在加载此Unlinked Documents页面时,ASP.NET辅助进程的内存占用量超过了GB.

经过调查,似乎Entity Framework正在为数百个未链接的文档加载整个文档行实体(包括FileStream,转换为字节数组).在我的存储库类中,我在转换为模型时不保存此字节数组,但到那时为时已晚.EF花费了时间和内存来将字节数组分配到Repository类表示中.

有没有办法告诉EF不要加载这个字节数组,除非我明确要求它?

asp.net entity-framework-4 c#-4.0

9
推荐指数
1
解决办法
2949
查看次数

当应用程序最小化到托盘时,C#MessageBox到前面

我有一些弹出消息框的代码:

MessageBox.Show(this,
                 "You have not inputted a username or password. Would you like to configure your settings now?",
                 "Settings Needed",
                 MessageBoxButtons.YesNo,
                 MessageBoxIcon.Question);
Run Code Online (Sandbox Code Playgroud)

我的问题是当弹出我的应用程序通常最小化到托盘.因此,消息框不会出现在前面,也不会出现在起始栏中.看到它的唯一方法是通过alt-tabbing.

以下代码可以最小化我的应用程序(父级)到托盘:

if (FormWindowState.Minimized == WindowState)
{                
      Hide();                
}
Run Code Online (Sandbox Code Playgroud)

.net c# system-tray messagebox winforms

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

RESTful(WebAPI)服务中的非CRUD操作

我通过将现有的WCF服务转换为WebAPI来学习WebAPI(以及一般的REST).在这个过程中,我对处理非CRUD操作的最佳方式感到困惑.这是我的服务合同:

[ServiceContract]
public interface IProxyHelper
{
    [OperationContract]
    List<ProxyInfo> GetUsersCurrentUserCanActAsProxyFor(int positionId, int appId);

    [OperationContract]
    void DeleteProxy(int id);

    [OperationContract]
    List<ProxyInfo> GetProxyData(int appId);

    [OperationContract]
    bool CanPositionProxy(int positionId, int appId);

    [OperationContract]
    void AddProxy(
      string userRacf,
      string proxyAsRacf,
      int userPositionId,
      int proxyPositionId,
      string requestedByRacf,
      int appId);

    [OperationContract]
    int GetPositionIdByRacf(string racf);

    [OperationContract]
    string GetRacfByPositionId(int positionId);
}
Run Code Online (Sandbox Code Playgroud)

一些方法,如DeleteProxy和AddProxy I可以轻松转移到基于CRUD的方法.

问题出现在:

GetProxyData - 代理系统被多个应用程序使用,虽然我可以做api/Proxy/1,但我觉得这是"作弊",因为这应该是获取ProxyId 1,而不是应用程序1的代理.

GetUsersCurrentUserCanActAsProxyFor - 这个对我来说在多个层面上令人困惑.我该如何处理多个参数?并且它也没有完全落入CRUD方法.

这是否意味着我应该放弃WebAPI转换?如果没有,我该如何处理这些非标准方法?

c# asp.net wcf asp.net-web-api

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

存储过程有时会返回short,有时会返回int

我正在使用遗留代码库,需要调用一个我不允许修改的存储过程.此存储过程返回一行或多行验证数据.

结果集示例(两列,代码和文本):

0 "success"
Run Code Online (Sandbox Code Playgroud)

要么

3 "short error"
4 "detailed error"
Run Code Online (Sandbox Code Playgroud)

在过程本身中,消息选择简单如下:

Select 0 as code, 'success' as text
Run Code Online (Sandbox Code Playgroud)

问题:

我正在使用Entity Framework将此存储过程的结果映射到自定义类:

public class ValidationResult
{
    public int code { get; set; }
    public string text { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

电话本身:

var result = context.Database.SqlQuery<ValidationResult>(@"old_sproc").ToList();
Run Code Online (Sandbox Code Playgroud)

我已经编写了一些集成测试,并注意到当过程返回成功消息时,0表示为a short.当它返回非零消息时,它会作为一个int.我假设设置code为int,short适合.不幸的是,我的成功测试得到以下异常:

从物化的"System.Int16"类型到"System.Int32"类型的指定强制转换无效.

当我切换code到短路以使我的成功测试通过时,我的失败测试失败,出现以下异常:

从物化的"System.Int32"类型到"System.Int16"类型的指定强制转换无效.

ADO.NET就是一个答案

一种解决方案是回退到ADO.NET的SqlDataReader对象,所以我将其作为后备解决方案.我想知道我是否可以在EF方面做些什么来实现这个目的.

.net c# entity-framework-6

8
推荐指数
2
解决办法
1103
查看次数

在单个报告中使用两个不同的数据集

我有两个不同的2个数据集,它们具有不同的文件,它们通过两个具有相同输入参数的存储过程进行填充.每个数据集具有不同的列和180左右的列,我关心的是如何在单个报告中使用这两个不同的数据集两个不同的字段(两个不同的表).对于一个数据集我使用了报告向导,但无法找出第二个数据集.请建议相同的..

report reporting-services ssrs-2008

7
推荐指数
2
解决办法
7万
查看次数

jQuery $ .ajax对WCF服务的调用返回400 Bad Request

(最后更新)

我正在研究一种使用不熟悉技术的想法.我写了一些WCF服务,但我从未做过任何高级配置.这是我第一次深入了解jQuery.前提是我创建一个WCF服务来获取分支信息,由jQuery检索.

我的第一次搜索产生了这个页面:http://www.codeproject.com/KB/aspnet/WCF_JQUERY_ASMX.aspx#2我正在使用它作为我的代码的基础.我最初是作为一个跨站点设置开始的,我摆脱了,看看我是否可以让这个东西工作.我搜索了堆栈溢出,没有帖子解决了我的400 Bad Request问题.

我的web.config中的代码:

<system.serviceModel>
<behaviors>
  <serviceBehaviors>
    <behavior name="GeoDataBehavior">
      <serviceMetadata httpGetEnabled="true" />
      <serviceDebug includeExceptionDetailInFaults="true" />
    </behavior>
    <behavior name="">
      <serviceMetadata httpGetEnabled="true" />
    </behavior>
  </serviceBehaviors>
  <endpointBehaviors>
    <behavior name="GDEPBehavior">
      <webHttp />
    </behavior>
  </endpointBehaviors>
</behaviors>
<bindings>
  <webHttpBinding>
    <binding name="GDBinding" crossDomainScriptAccessEnabled="true"/>
  </webHttpBinding>
</bindings>
<services>
  <service behaviorConfiguration="GeoDataBehavior" name="GeoDataService">
    <endpoint address="" 
              binding="webHttpBinding" contract="IGeoDataService"
               behaviorConfiguration="GDEPBehavior"/>
    <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange"/>
  </service>
</services>
Run Code Online (Sandbox Code Playgroud)

我界面的代码:

[ServiceContract]
public interface IGeoDataService
{
    [OperationContract]
    [WebInvoke(Method = "POST",
        BodyStyle = WebMessageBodyStyle.Wrapped,
        ResponseFormat = WebMessageFormat.Json)]
    List<BranchData> GetBranches();
}


// Use …
Run Code Online (Sandbox Code Playgroud)

wcf jquery

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

Visual Studio 2010:报表定义无效.详细信息:报表定义的目标无效

Re:报告定义无效.详细信息:报表定义具有无效的目标命名空间" http://schemas.microsoft.com/sqlserver/reporting/2008/01/reportdefinition ",无法升级.

报告专家需要,梁着...

这是我今天经历的一步,以实现这一点愚蠢.

1)Visual Studio 2010,带有SQL Server 2012

2)App是一个winforms vb.net,一直很好用,最初是在VS 2008开发的

在我到达之前,报告在上午运行良好.-叹-

3)尝试编辑一些报告 - 自升级到SQL 2012以来的第一次.

4)无法编辑数据集并确定某些内容已损坏.

5)在VS 2010上安装修复装置并确保它完全是最新的.没有快乐 - 无法更新数据集.

6)为连接客户端添加SDK,重新运行SQL SSMS的安装

7)现在我可以编辑报告数据集,但报告已被破坏.(见标题) - 双叹 -

报告查看器是10.0.0

.Net是4.0

谢谢你的任何提示

麦克麦卡斯基

.net report-designer visual-studio-2010 reporting-services

6
推荐指数
2
解决办法
3万
查看次数

Ajax自动完成扩展程序并获取所选项目的ID?

我正在使用自动填充扩展器在用户输入时建议名称.如何在用户选择项目后获取选择值?我想我可以使用onclientitemselected但我不熟悉如何写这个?我需要根据autocompleteextender文本框中的选择填充文本框.谢谢

 <asp:TextBox ID="TextBox1" runat="server" Height="27px" Width="570px"></asp:TextBox>
        <asp:AutoCompleteExtender ID="AutoCompleteExtender" runat="server" 
    DelimiterCharacters="" Enabled="True" ServicePath="AutoComplete.asmx"  
    ServiceMethod="GetCompletionList" TargetControlID="TextBox1" 
    MinimumPrefixLength="2" UseContextKey="true" ContextKey="StateDropDown" 
            CompletionListElementID="autocompleteDropDownPanel">
</asp:AutoCompleteExtender>
Run Code Online (Sandbox Code Playgroud)

asp.net ajax ajaxcontroltoolkit

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