我首先使用实体框架代码来创建我的表。请注意 - 创建表,而不是数据库,因为我在托管环境中工作并且我没有允许创建数据库的用户。
提交数据库更新工作正常,但检索数据会出现异常:
异常详细信息:System.Data.SqlClient.SqlException:对象名称“dbo.EventHosts”无效。
我读到它发生是因为我没有使用 EF Code First 来创建数据库。没关系,但我如何优雅地解决这个问题?
所有生成的表都没有像 dbo 这样的前缀。像这样的解决方案不起作用,而且一点也不优雅:
[Table("EventHosts", Schema = "")]
Run Code Online (Sandbox Code Playgroud) 我有一个问题是在WebAPI/MVC控制器AJAX请求上使用async/await是否有益.
假设我有一个与WebAPI后端对话的AngularJS应用程序,我想获得一些数据.我对WebAPI做了一些AJAX调用并等待结果.
就客户而言,这当然是异步.如果我要使这些操作异步,它现在对服务器有益吗?
编辑
我刚刚发现了这个:http://www.dotnetcurry.com/showarticle.aspx? ID = 948 - 说它是
编辑 - 试图澄清 让我试着更清楚.如果我将从WebAPI到服务层的所有调用实现为异步(.NET关键字)与"正常",那么服务器上的处理器负载是否会更少?
如果所有方法都不是Async,IIS会产生更多线程,从而占用更多内存吗?
我正在尝试计算 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) 我有几个ASP.NET vNext应用程序,我希望我的CI服务器也能够构建它们.我的本地计算机和CI服务器都运行VS2015 RC.然后我们有了VS Online和一个本地构建控制器 - 这是提到的服务器.
但是,我无法进行构建,因为它似乎在寻找v12工具 - 它不包含任何DNX.
所以 - 构建解决方案给出:

需要安装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.
我正在通过“从头开始的设计模式”进行工作,并希望立即在实践中使用它。我正在编写一段代码,将一个应用程序与其他应用程序连接起来。实际上,我需要生成包含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,并且代码仍然可以使用。我一直试图做的是:针对接口编程并提取变化的部分。这个怎么样?
我最近一直在研究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
使用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时,验证不起作用
我正在尝试使用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某个地方吗?
c# ×4
architecture ×2
.net ×1
ajax ×1
algorithm ×1
angularjs ×1
asynchronous ×1
dnx ×1
enterprise ×1
generics ×1
json ×1
msbuild ×1
powershell ×1
r ×1
sql-server ×1
tfsbuild ×1
validation ×1