小编mcc*_*002的帖子

首先使用实体​​框架代码时将外键设置为null

我正在使用数据库第一次实现Entity Framework Code First作为项目的数据层,但我遇到了一个问题.

我需要能够将外键设置为null,以便删除数据库中的关联.

我有2个物体.一个叫做项目.

public class Project
{
    public int ProjectId {get; set;}
    public Employee Employee {get;set;}
}

public class Employee
{
    public int EmployeeId {get; set;}
    public string EmployeeName {get;set;}
}
Run Code Online (Sandbox Code Playgroud)

这匹配我在数据库中的内容:

CREATE TABLE Project(
    ProjectId int IDENTITY(1,1) NOT NULL,
    EmployeeId int NULL
)

CREATE TABLE Project(
    EmployeeId int IDENTITY(1,1) NOT NULL,
    EmployeeName varchar(100) NULL
)
Run Code Online (Sandbox Code Playgroud)

我可以将一个Employee分配给一个项目.但是,我希望能够从项目中删除员工并使Employee字段为空.在我的UI中,这将显示为"No EMployee Assigned".

但是,如果没有直接的sql查询,我似乎无法在实体框架4.1中找到这样做的方法.

我试过了:

public void RemoveEmployeeFromProject(int projectId)
{
    var project = Context.Projects.FirstOrDefault(x => x.ProjectId == projectId);
    project.Employee = null; …
Run Code Online (Sandbox Code Playgroud)

c# entity-framework-4.1

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

在azure worker角色中使用QueueClient.OnMessage

我有一个Azure辅助角色,负责检查4个服务总线队列.目前,我只是循环方法来手动检查队列.

while(true)
{
    //loop through my queues to check for messages
}
Run Code Online (Sandbox Code Playgroud)

Azure SDK 2.0具有监听消息而不是轮询消息的能力.但是我见过的每个例子都使用Console.ReadKey()的控制台应用程序.有没有办法让工作者角色坐下来等待消息呢?

我试过了:

public override void Run()
{
    _queueProcessors.ForEach(x => x.OnMessage(Process);
}
Run Code Online (Sandbox Code Playgroud)

其中_queueProcessors是QueueClients的列表,而Process是处理消息的私有方法.但是,worker角色会注册它们然后重新启动.

所以任何人都知道如何让队列客户端坐下来等待消息?

c# azure azure-worker-roles azureservicebus azure-servicebus-queues

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

捆绑脚本中的$(document).ready()

我最近在网络优化方面做了很多工作,我遇到了一个有趣的问题.我想知道是否有人可能知道现有的解决方案.

假设您有多个特定于页面的外部.js文件,每个文件都有自己的页面特定 $(document).ready()功能.假设第1页的文档就绪功能将样式应用于<li>正文中的每个,而第2页中准备好的文档仅使用样式<input type="button" />s.只是一个简单的例子.

现在假设您将这两个脚本以及所有库脚本捆绑在一起,以减少页面加载时的http请求数.现在,两个文件准备就绪了,第2页的li将使用仅适用于第1页的代码进行格式化.

我的问题是 - 有没有办法通过jQuery或第三方库将特定文档分配到特定页面但仍然将它们全部捆绑到一个.js文件中?

javascript optimization jquery

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

将.Net Core应用程序部署到Linux Service Fabric群集

我有一个用.Net Core编写的Service Fabric应用程序。它可以在本地Windows SF群集上正常运行。它由没有Web组件的单个无状态服务组成。

我现在正尝试将其部署到Linux SF群集。我可以使用service-fabric-onebox实例在Docker中运行SF。

我使用了从azuresfcsharp也门模板中获得的entryPoint.sh文件,并更改了ServiceManifest.xml文件中的EntryPoint Program节点。我还使用dotnet cli和-r ubuntu.16.04-x64开关来编译我的项目。

现在,当我尝试部署到SF群集时,我得到

    Error event: SourceId='System.Hosting', Property='CodePackageActivation:Code:EntryPoint'.

There was an error during CodePackage activation.The service host terminated with exit code:32512
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?

linux .net-core azure-service-fabric

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

由Watin触发的onchange事件中的对话框

我有一个带下拉列表的网站.当用户更改下拉列表时,会出现一个确认对话框,询问他们是否要更改它.如果他们单击是,则继续,否则保持不变.很标准的东西.

然而,当我写Watin单元测试时,这是一个痛苦.

我的html是一个简单的选择列表,其id为_stateList

这是我的javascript:

$(function() {
    $('#_stateList').change(function() {
        if(confirm('Are you sure you wish to change your state?'))
            //do something 
    });
});
Run Code Online (Sandbox Code Playgroud)

所以在Watin中,我有一个扩展方法来触发change事件:

public static void SelectWithChangeEvent(this SelectList selectList, string text)
{
    selectList.Select(text);
    string js = string.Format("$('#{0}').change();", selectList.Id);
    InternetExplorer.Browser.Eval(js); //This is where it hangs
}
Run Code Online (Sandbox Code Playgroud)

这里称为扩展方法:

ConfirmDialogHandler dialogHandler = new ConfirmDialogHandler();
using (new UseDialogOnce(InternetExplorer.Browser.DialogWatcher, dialogHandler))
{
    PageMapping.StateDropdown.SelectWithChangeEvent(stateName); //It never gets past here
    dialogHandler.WaitUntilExists(5);
    if(dialogHandler.Exists())
        dialogHandler.OKButton.Click();
    else
        Assert.Fail("No Dialog Appeared");
}
Run Code Online (Sandbox Code Playgroud)

我真的希望这不是太多的代码,但我根本无法弄清楚如何处理在更改事件而不是单击事件中触发的对话框.在Watin中,按钮具有ClickNoWait().Select有什么相似的吗?还是Eval?或者也许是一个不等待的设置?

任何帮助表示赞赏.

c# jquery watin unit-testing

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