小编alb*_*jan的帖子

在实体框架4.1(CodeFirst)中更新对子对象的引用

我正在尝试使用EntityFramework 4.1(CodeFirst)更新我之前保存的对象

Job类具有以下属性......

public class Job
{
    [key]
    public int Id { get; set; }
    public string Title { get; set; }
    public Project Project { get; set; }
    public JobType JobType { get; set; }
    public string Description { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

初始创建工作正常,但更新只提交对字符串的更改.

如果我改变的子对象,例如在JobType从地产JobTypeAJobTypeB-更改不会犯...

我不打算对JobType进行更改 - 仅限于Job.

using (var context = new JobContext())
{
    context.Jobs.Attach(job);
    context.Entry(job).State = EntityState.Modified;
    context.SaveChanges();
}
Run Code Online (Sandbox Code Playgroud)

看看SQL Profiler - 甚至没有为更新发送ID - 但它们是用于初始插入!

c# entity-framework code-first ef-code-first

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

Nancy模型绑定到子类

我们在Nancy的默认模型绑定器上遇到了问题.鉴于以下......

public class Foo
{
    public Foo()
    {
    }

    public string Name { get; set; }

    public Bar Bar { get; set; }
}

public class Bar
{
    public string Name { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

像......这样的元素

<input type="text" value="Name" />
<input type="text" value="Bar.Name" />
Run Code Online (Sandbox Code Playgroud)

使用默认模型绑定器如此...

var foo = this.Bind<Foo>();

这正确绑定Foo.Name但无法绑定Foo.Bar.Name

有没有办法使用默认绑定器启用这种绑定,还是我们需要自己滚动?若有,那么有什么好例子吗?

c# model-binding nancy

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

为什么计算表达式不跨越finally块

例如:

let test () = 
    async {
        try 
           do! someting ()
        finally
           do! sometingElse ()
    }
Run Code Online (Sandbox Code Playgroud)

你不能做到do!最后你从编译器得到消息"你只能在计算表达式中使用do!"但它仍然在那里.

我知道如何解决这个问题,但我想了解编译器限制这种情况的原因.

好了一些fiddeling后,我觉得它像这样沮丧:(我很高兴我们可以写cexprs)

从:

async {
    try 
       do! someting ()
       do! sometingElse ()
    finally
       printfn "finally"
}
Run Code Online (Sandbox Code Playgroud)

至:

async.TryFinally(
    async.Bind(
        someting(), (fun () -> 
            async.Bind(sometingElse (), (fun () -> 
                async.Zero())))), (fun () -> printfn "finally")) |> ignore
Run Code Online (Sandbox Code Playgroud)

我知道第二部分TryFinally不支持a cexpr.

f# f#-async

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

使用变换器时,如何从spark向响应添加标头

我有这个:

get ("/test", (req, resp) -> {
    return repository.getAll();
}, new JsonTransformer());
Run Code Online (Sandbox Code Playgroud)

我的变压器看起来像:

public class JsonTransformer implements ResponseTransformer {

    ObjectMapper om = new ObjectMapper();

    public JsonTransformer() {
    }

    @Override
    public String render(Object o) throws Exception {
        return om.writeValueAsString(o);
    }
}
Run Code Online (Sandbox Code Playgroud)

我尝试在响应中使用标题函数添加标题,如下所示:

get ("/test", (req, resp) -> {
    resp.header("Content-Type", "application/json");
    return repository.getAll();
}, new JsonTransformer());
Run Code Online (Sandbox Code Playgroud)

我尝试过在文档中找到的内容:我认为这会设置接受类型

get ("/test", "application/json", (req, resp) -> {
    return repository.getAll();
}, new JsonTransformer());
Run Code Online (Sandbox Code Playgroud)

但无处我得到application/json我的Content-Type

java java-8 spark-java

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

如何在.NET中的引用可执行文件中包含App.config信息?

我有一个可执行项目,比方说A,它是B在运行中启动另一个可执行项目.为了B.exe在A的当前工作文件夹中,我添加B作为A的引用,以便在编译之后将a B.exe复制到A's文件夹中.但是,我注意到我所做的配置B没有在A的文件夹中复制或生成(A仅在's文件夹中没有B.exe.config文件B.exe),因此B没有正确配置跟踪等内容.

我当然可以B.exe.config手动复制到A's文件夹,但我打赌有一些自动方法可以做到这一点.有人能帮助我吗?

.net app-config

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

带有utf-8文件名的Zip文件

在我的网站上,我可以选择下载用户上传的所有图像.问题出在带有希伯来名字的图像中(我需要文件的原始名称).我试图解码文件名,但这没有帮助.这是一个代码:

using ICSharpCode.SharpZipLib.Zip;

Encoding iso = Encoding.GetEncoding("ISO-8859-1");
Encoding utf8 = Encoding.UTF8;
byte[] utfBytes = utf8.GetBytes(file.Name);
byte[] isoBytes = Encoding.Convert(utf8, iso, utfBytes);
string name = iso.GetString(isoBytes);

var entry = new ZipEntry(name + ".jpg");
zipStream.PutNextEntry(entry);
using (var reader = new System.IO.FileStream(file.Name, FileMode.Open, FileAccess.Read, FileShare.ReadWrite))
{
    byte[] buffer = new byte[ChunkSize];
    int bytesRead;
    while ((bytesRead = reader.Read(buffer, 0, buffer.Length)) > 0)
    {
        byte[] actual = new byte[bytesRead];
        Buffer.BlockCopy(buffer, 0, actual, 0, bytesRead);
        zipStream.Write(actual, 0, actual.Length);
    }
} 
Run Code Online (Sandbox Code Playgroud)

在utf-8编码之后,我得到了这样的希伯来文件名:??????.jpg我的错误在哪里?

.net c# asp.net asp.net-mvc zip

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

Crystal报表在C#,asp.net中显示空白页面

我在vs2008有一个网站.我创建了一个在开发环境中工作正常的水晶报告.但是当我将我的网站发布到IIS时,报表永远不会显示.它只显示一个空白页面.谁能告诉我如何解决这个问题?谢谢

c# asp.net crystal-reports

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

Ninject从IBinding中获取目标类型

我有一个由几种类型实现的接口.但在我做之前,我kernel.GetAll<IAmServiceable>()希望能够思考注射的目标类型.

我知道函数kernel.GetBindings(typeof(IAmServiceable))存在,但这会返回一个列表IBinding.

有谁知道如何从中获取目标类型IBinding

我想知道在IAmServiceable实例化之前绑定的类型.

c# dependency-injection ninject inversion-of-control

5
推荐指数
2
解决办法
1655
查看次数

使用 Foq 模拟具有显式实现接口的类

我想DbSet使用Foq模拟一个实体框架。它是这样的:

let patients = 
    ([
        Patient(Guid "00000000-0000-0000-0000-000000000001");
        Patient(Guid "00000000-0000-0000-0000-000000000002");
        Patient(Guid "00000000-0000-0000-0000-000000000003");
    ]).AsQueryable()

let mockPatSet = Mock<DbSet<Patient>>.With(fun x ->
    <@ 
        // This is where things wrong. x doesn't have a property Provider
        x.Provider --> patients.Provider 
    @>
)
Run Code Online (Sandbox Code Playgroud)

我尝试在某些地方强制并强制转换x为 an IQueryable,但这不起作用。

正如你可以看到这里的文档为DbSet它确实实现了IQueryable通过接口DbQuery,而是通过“明确的”执行属性这样做。

Moq是否有一个函数,As所以你可以告诉它把它当作一个IQueryable看起来像:

var mockSet = new Mock<DbSet<Blog>>(); 
mockSet.As<IQueryable<Blog>>().Setup(m => m.Provider).Returns(data.Provider); 
Run Code Online (Sandbox Code Playgroud)

c# f# entity-framework mocking foq

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

为什么第二个订阅在订阅两次到rx 2.3中的observable时没有收到任何值?

我有这个准系统的例子,根据rxjs文档不符合我的预期.我希望订阅都接收所有值.

文档提到:

然后两个观察者订阅此序列并打印出其值.您将注意到为每个订户重置序列,其中第二个订阅将从第一个值重新启动序列.

let s1 = rx.Observable.from([1, 2, 3, 4, 9, 11])

s1.subscribe(
    x => console.log(x), 
    x => console.log(x), 
    x => console.log('complete'))

s1.subscribe(
    x => console.log(x), 
    x => console.log(x), 
    x => console.log('complete'))
Run Code Online (Sandbox Code Playgroud)

但是第二个订阅只记录'完整'

事实证明,该示例在rxjs 2.4中按预期工作,但在2.3中没有.有谁知道改变了什么?我无法在发行说明中发现它

这是一个2.3.20的小提琴:小提琴

这是一个2.4.1:小提琴

javascript rxjs ecmascript-6

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