我正在尝试使用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从地产JobTypeA到JobTypeB-更改不会犯...
我不打算对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 - 但它们是用于初始插入!
我们在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
有没有办法使用默认绑定器启用这种绑定,还是我们需要自己滚动?若有,那么有什么好例子吗?
例如:
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.
我有这个:
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头
我有一个可执行项目,比方说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文件夹,但我打赌有一些自动方法可以做到这一点.有人能帮助我吗?
在我的网站上,我可以选择下载用户上传的所有图像.问题出在带有希伯来名字的图像中(我需要文件的原始名称).我试图解码文件名,但这没有帮助.这是一个代码:
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我的错误在哪里?
我在vs2008有一个网站.我创建了一个在开发环境中工作正常的水晶报告.但是当我将我的网站发布到IIS时,报表永远不会显示.它只显示一个空白页面.谁能告诉我如何解决这个问题?谢谢
我有一个由几种类型实现的接口.但在我做之前,我kernel.GetAll<IAmServiceable>()希望能够思考注射的目标类型.
我知道函数kernel.GetBindings(typeof(IAmServiceable))存在,但这会返回一个列表IBinding.
有谁知道如何从中获取目标类型IBinding?
我想知道在IAmServiceable实例化之前绑定的类型.
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) 我有这个准系统的例子,根据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.4.1:小提琴
c# ×6
.net ×2
asp.net ×2
f# ×2
app-config ×1
asp.net-mvc ×1
code-first ×1
ecmascript-6 ×1
f#-async ×1
foq ×1
java ×1
java-8 ×1
javascript ×1
mocking ×1
nancy ×1
ninject ×1
rxjs ×1
spark-java ×1
zip ×1