小编Joc*_*ick的帖子

从生成的表中检索数据时,对象名称“dbo.TableName”无效

我首先使用实体​​框架代码来创建我的表。请注意 - 创建表,而不是数据库,因为我在托管环境中工作并且我没有允许创建数据库的用户。

提交数据库更新工作正常,但检索数据会出现异常:

异常详细信息:System.Data.SqlClient.SqlException:对象名称“dbo.EventHosts”无效。

我读到它发生是因为我没有使用 EF Code First 来创建数据库。没关系,但我如何优雅地解决这个问题?

所有生成的表都没有像 dbo 这样的前缀。像这样的解决方案不起作用,而且一点也不优雅:

[Table("EventHosts", Schema = "")]
Run Code Online (Sandbox Code Playgroud)

.net c# sql-server entity-framework ef-code-first

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

使WebAPI操作异步?

我有一个问题是在WebAPI/MVC控制器AJAX请求上使用async/await是否有益.

假设我有一个与WebAPI后端对话的AngularJS应用程序,我想获得一些数据.我对WebAPI做了一些AJAX调用并等待结果.

就客户而言,这当然是异步.如果我要使这些操作异步,它现在对服务器有益吗?

编辑

我刚刚发现了这个:http://www.dotnetcurry.com/showarticle.aspx? ID = 948 - 说它是

编辑 - 试图澄清 让我试着更清楚.如果我将从WebAPI到服务层的所有调用实现为异步(.NET关键字)与"正常",那么服务器上的处理器负载是否会更少?

如果所有方法都不是Async,IIS会产生更多线程,从而占用更多内存吗?

c# ajax asynchronous asp.net-web-api angularjs

4
推荐指数
1
解决办法
2054
查看次数

按组累计最小值和最大值

我正在尝试计算 R 中数据帧的最小值。数据帧如下所示:

+-----+--------------+-----------+------+------+
| Key | DaysToEvent  | PriceEUR  | Pmin | Pmax |
+-----+--------------+-----------+------+------+
| AAA | 120          |        50 |   50 |   50 |
| AAA | 110          |        40 |   40 |   50 |
| AAA | 100          |        60 |   40 |   60 |
| BBB | ...          |           |      |      |
+-----+--------------+-----------+------+------+
Run Code Online (Sandbox Code Playgroud)

因此,最低价格范围 ( Pmin) 保留该键到该时间点 ( DaysToEvent) 的最低价格。

这是我的实现:

for (i in 1:nrow(data)){
  currentRecord <- data[i,]

  if(currentRecord$Key != currentKey) {
    # …
Run Code Online (Sandbox Code Playgroud)

algorithm r

4
推荐指数
1
解决办法
89
查看次数

使本地TFS构建代理程序使用v14 msbuild工具

我有几个ASP.NET vNext应用程序,我希望我的CI服务器也能够构建它们.我的本地计算机和CI服务器都运行VS2015 RC.然后我们有了VS Online和一个本地构建控制器 - 这是提到的服务器.

但是,我无法进行构建,因为它似乎在寻找v12工具 - 它不包含任何DNX.

所以 - 构建解决方案给出: 需要安装Dnx Runtime包. 有关详细信息,请参阅输出窗口

需要安装Dnx Runtime包.有关详细信息,请参阅输出窗口

安装-因为它与VS2015 RC,AFAIK来了.所以我认为构建模板不使用v14工具.我下载了默认Git模板v12.确实它说:

<this:Process.BuildProcessVersion>12.0</this:Process.BuildProcessVersion>
Run Code Online (Sandbox Code Playgroud)

所以我将其切换为14,上传模板,运行构建.然后:

用于此构建的构建控制器不会

异常消息:用于此构建的构建控制器不支持构建定义使用的模板文件的版本.模板文件的版本是14.0.此构建控制器的最大支持版本为12.0.0.0.

所以试图解决这个问题 - 让我看到这个论坛问题:

然后,您需要更改所涉及的MSBuild版本,而不是更改BuildProcessVersion属性.打开构建过程模板,找到Run MSBuild for Project活动,将ToolPath属性更改为2013版本的msbuild

所以 - 我检查了模板 - 没有ToolPath版本.但是有一个ToolVersion属性 - 我将尝试设置为14:

在此输入图像描述

简而言之,我的问题是:如何在我的构建服务器上构建ASP.NET vNext应用程序,该服务器已安装VS2015RC - 但是正在使用v12工具构建?

UPDATE

似乎问题不在于使用错误的工具,而在于在服务帐户(TFS代理正在执行)运行时查找/使用正确的DNX运行时更多.我为DNX团队添加了一个问题:https://github.com/aspnet/dnx/issues/2239.

msbuild tfsbuild vs-2015-preview dnx

4
推荐指数
1
解决办法
6936
查看次数

关于泛型的体系结构/最佳实践问题

我正在通过“从头开始的设计模式”进行工作,并希望立即在实践中使用它。我正在编写一段代码,将一个应用程序与其他应用程序连接起来。实际上,我需要生成包含XML文件的电子邮件,然后通过电子邮件发送它。但是将来可能需要其他东西。

因此,我确定了“正在发生变化的事物”:-传输数据-传输方式(可以是电子邮件,但也可以是FTP或Web服务用于其他数据交换)

因此,我:-创建了一个抽象类DataObject-创建了一个接口ITransmissionMethod-创建了一个dataExchange抽象类:

  abstract class DataExchange<T,U>
    {
        private T DataObject;
        private U SendMethod;
    }
Run Code Online (Sandbox Code Playgroud)

而SendViaMail就像

class SendViaMail : ISendMethod<System.Net.Mail.Attachment>
{
    public override void Send(System.Net.Mail.Attachment dataItem)
    {
        throw new NotImplementedException();
    }
}
Run Code Online (Sandbox Code Playgroud)

现在-我可以创建类似的类:

class MyExchange : DataExchange<MyDataObject,SendViaMail> { }
Run Code Online (Sandbox Code Playgroud)

您如何看待这种方法?现在,我真正想做的是在DataExchange中创建一个抽象方法,该方法应类似于

private abstract [the type of the T in ISendMethod<T>] PrepareObjectForSending(T dataObject) {
}
Run Code Online (Sandbox Code Playgroud)

Visual Studio会强迫我实现类似的方法:

private abstract System.Net.Mail.Attachment PrepareObjectForSendingMyDataObject dataObject) {
// Serialize XML file and make it into attachment object
}
Run Code Online (Sandbox Code Playgroud)

那不是很甜蜜吗?但是你们如何看待这种方法呢?将来,人们可以创建新的dataObjects和新的sendmethod,并且代码仍然可以使用。我一直试图做的是:针对接口编程并提取变化的部分。这个怎么样?

c# architecture generics design-patterns

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

企业应用程序中的Ioc容器放置

我最近一直在研究Ioc容器和AOP,我对这些概念感到非常惊讶.然而,我正在努力决定如何以及在何处实施容器.

以下文章建议在"应用程序入口点"中实现容器:

现在 - 我的思想实验应用程序将包含多个visual studio项目(一个用于数据访问,winforms应用程序).并且假设我想使用AOP进行Log4net日志记录,因此我在Ioc容器中设置了log4net.所以WinForms应用程序在入口点,这就是Ioc容器应该去的地方.

这是一个问题:如果我想在我的数据访问项目/层中记录内容,我应该添加对winforms应用程序的引用,从那里获取ioc容器,从中获取log4net实例并将其用于日志记录吗?

这意味着我的数据层依赖于winforms应用程序,这可能是不对的.我把容器放在解决方案中就像一个'Common'项目.这样,所有相关项目(数据访问/ winformsa等)都可以访问容器.什么是正确的方式去这里?

architecture enterprise ioc-container inversion-of-control visual-studio

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

Validator.TryValidateObject不验证属性

使用WebApi v2我已经构建了一个以对象为参数的东西.我正在使用IValidateableObject和dataannotations进行模型验证,我使用WebApi过滤器触发.

但是,一个对象包含所有需要验证的项目数组.我已经创建了一个自定义属性,以便使用像Asp.net Web Api嵌套模型验证这样做,但我无法进行验证.另外 - 我已经使用了ValidateAllProperties标志.

所以我构建了一个控制台应用程序来验证行为,似乎没有触发验证(或者我错误地调用了API).这是对我不起作用的东西:

namespace ConsoleApplication1 {using System; 使用System.Collections.Generic; 使用System.ComponentModel.DataAnnotations;

class Program
{
    static void Main()
    {
        var s = new Boundary { LowerDecimal = 1.1m };
        var isValid = Validator.TryValidateObject(s, new ValidationContext(s, null, null), new List<ValidationResult>(), true);
        Console.WriteLine("Validation resulted in " + isValid);
        Console.ReadLine();
    }
}

public class Boundary
{
    [Range(0,1)]
    public decimal LowerDecimal { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

}

isValid始终返回true.我在这做错了什么?

编辑 - 也尝试像这里定义MetaData类:当我使用Validator.TryValidateObject时,验证不起作用

c# validation data-annotations asp.net-web-api

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

在PowerShell SELECT中解析JSON

我正在尝试使用powershell命令列出所有Azure VM的大小.问题是该HardwareProfile属性返回一个JSON对象,我想解析它并只使用vmSize该对象的属性值.

所以我正在运行这个命令:

Get-AzureRmVM
Run Code Online (Sandbox Code Playgroud)

这给了我这个:

ResourceGroupName        : TESTRG
...
Name                     : ubuntu-server
...
HardwareProfile          : {
                             "vmSize": "Standard_DS2"
                           }
...
Run Code Online (Sandbox Code Playgroud)

注意HarwareProfile值中的JSON .

我想做的是:

Get-AzureRmVM | Select ResourceGroupName, Name, HardwareProfileText `
              | Out-Gridview -PassThru
Run Code Online (Sandbox Code Playgroud)

哪个有效 - 只是,我想摆脱HardwareProfileText中的JSON表示法.使用Format-Table看起来像这样:

ResourceGroupName Name          HardwareProfileText
----------------- ----          -------------------
TESTRG            ubuntu-server {...
Run Code Online (Sandbox Code Playgroud)

所以问题是:我怎样才能获得vmSize此表中的值?我可以潜入ConvertFrom-Json某个地方吗?

powershell json azure-powershell

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