小编Sco*_*ord的帖子

虚拟关键字在Entity Framework 4.1 POCO Code First中有什么影响?

virtual在EF Code First中的属性上使用时,关键字是否有效?有人能描述不同情况下的所有后果吗?

例如,我知道它可以控制延迟加载 - 如果你在ICollection/one-to-many关系属性上使用virtual关键字,默认情况下它将是延迟加载的,而如果你将虚拟关键字保留为out,它将会急切的.

virtual关键字在EF中与POCO实体有什么其他影响?我应该默认使用virtual我的所有属性,还是默认不使用它?

entity-framework-4 ef-code-first entity-framework-4.1

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

如何在Entity Framework Code First中分离对象?

没有Detach(object entity)DbContext.

我是否能够首先在EF代码上分离对象?

entity-framework ef-code-first entity-framework-4.1

136
推荐指数
3
解决办法
9万
查看次数

为什么JavaScript中的""== [null]为真?

我知道JavaScript在类型之间进行比较时会有很多疯狂的结果,但我并不完全理解为什么.今天碰到了这个.

为什么

"" == [null]
Run Code Online (Sandbox Code Playgroud)

true用JavaScript 评估?

更多Javascript平等娱乐,感谢@Qantas:

javascript

54
推荐指数
3
解决办法
4620
查看次数

如何格式化C#十进制以删除额外的0?

我想将字符串格式化为十进制,但十进制在小数点后包含一些后续零.我如何格式化它以使那些无意义的0消失?

string.Format("{0}", 1100M);
string.Format("{0}", 1100.1M);
string.Format("{0}", 1100.100M);
string.Format("{0}", 1100.1000M);
Run Code Online (Sandbox Code Playgroud)

显示:

1100
1100.1
1100.100
1100.1000
Run Code Online (Sandbox Code Playgroud)

但我希望它是:

1100
1100.1
1100.1
1100.1
Run Code Online (Sandbox Code Playgroud)

作为参考,这里有其他问题基本上与此重复,我感谢这里给出的答案:

c# format decimal tostring

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

如何在WPF中添加自定义路由命令?

我有一个包含菜单和子菜单的应用程序.我已将Appliocation Commands附加到某些子菜单项,如剪切,复制和粘贴.
我还有一些其他菜单项没有应用程序命令.
如何添加自定义命令绑定到这些子菜单项?
我已经阅读了这篇文章,但无法将事件附加到我的子菜单项.

c# wpf

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

C的智能指针/安全内存管理?

我和其他许多人一样,使用智能指针在C++中包含不安全的内存操作,使用RAII等等,已经取得了巨大的成功.但是,当您具有析构函数,类,运算符重载等时,包装内存管理更容易实现.

对于使用原始C99编写的人,您可以在哪里指出(没有双关语)来帮助安全内存管理?

谢谢.

c memory pointers smart-pointers c99

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

实体框架初始化是缓慢的 - 我可以做些什么来更快地引导它?

我的EF 4.3.1模型有200多个表.最初的启动很糟糕,几分钟.DotTrace捕获的配置文件意味着在框架深处有一些可怕的算法/可伸缩性选择,这可以通过数百万次调用那些方法以及3600万个IEnumerable.Contains()调用来证明.这是一个片段,这是由在数据库上完成的第一个查询触发的(未来的查询不会这样做并且没问题).

在此输入图像描述

我可以对我的模型做些什么来减轻痛苦?我能以某种方式预先编译吗?更好的是,EF团队可以解决这些问题或开源框架,以便我可以吗?或者至少修正拼写Warapper?:)

编辑:一个特定的EF调用触发这个基本上是var db = new MyDbContext(); db.Personnel.Where(a => a.Login == login).SingleOrDefault();.此外,EF Migrations Seed()AddOrUpdate可以有效地生成相同的堆栈.更完整的堆栈跟踪,可能会提供更多的上下文,在这里:富勒堆栈跟踪

编辑:一些相关链接:

EDIT2:现在他们刚刚开源代码,看来这行:

//Filter the 1:1 foreign key associations to the ones relating the sets used in these cell wrappers.
oneToOneForeignKeyAssociationsForThisWrapper =
    oneToOneForeignKeyAssociationsForThisWrapper.Where(
        it => (it.AssociationEndMembers.All(endMember => entityTypes.Contains(endMember.GetEntityType()))));
Run Code Online (Sandbox Code Playgroud)

是需要一些工作的人.当它可能没有时,它正在使用O(n ^ 2)算法,但我还没有仔细观察.

编辑3:令人高兴的是,看起来EF6中的工作正在修复此代码:http://entityframework.codeplex.com/discussions/396130

c# performance entity-framework-4 entity-framework-4.3

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

如何将XPath与没有前缀的默认命名空间一起使用?

什么是XPath(在C#API中XDocument.XPathSelectElements(xpath,nsman),如果重要的话)查询此文档中的所有MyNode?

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <MyNode xmlns="lcmp" attr="true">
    <subnode />
  </MyNode>
</configuration>
Run Code Online (Sandbox Code Playgroud)
  • 我试过/configuration/MyNode这是错误的,因为它忽略了命名空间.
  • 我试过/configuration/lcmp:MyNode哪个是错的,因为lcmp是URI,而不是前缀.
  • 我试过/configuration/{lcmp}MyNode哪个失败了因为Additional information: '/configuration/{lcmp}MyNode' has an invalid token.

编辑:我不能mgr.AddNamespace("df", "lcmp");像一些回答者所建议的那样使用.这要求XML解析程序知道我计划提前使用的所有命名空间.由于这适用于任何源文件,我不知道手动添加前缀的命名空间.它似乎{my uri}是XPath语法,但微软并没有打算实现那个......是真的吗?

c# xpath linq-to-xml xml-namespaces

34
推荐指数
3
解决办法
3万
查看次数

为什么你会使用99.9%而不是100%的HTML/CSS宽度?

我见过许多开发人员在我使用100%的地方编写HTML或CSS内联样式宽度为99.9%.使用99.9%是否有正当理由?它与100%有任何有效差异吗?

编辑转发MSalters的非常好的问题:Considering that 99.9% is one pixel off above 500 pixels, why not 99.99%? 我猜他是对的,如果你跟你一起使用dirty hack你应该使用99.99%,有人不同意吗?

其他参考文献:

html css haslayout

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

如果列不存在于所有表中,请添加一列?

我正在使用SQL Server 2005/2008.我需要在表中添加一个列(如果它尚不存在).这将适用于给定数据库中的所有表.我希望我很接近,但我对这个解决方案有疑问.

如何才能做到这一点?

这就是我所拥有的:

EXEC sp_MSforeachtable '
    declare @tblname varchar(255);
    SET @tblname =  PARSENAME("?",1);

    if not exists (select column_name from INFORMATION_SCHEMA.columns 
                   where table_name = @tblname and column_name = ''CreatedOn'') 
    begin
        ALTER TABLE @tblname ADD CreatedOn datetime NOT NULL DEFAULT getdate();
    end
'
Run Code Online (Sandbox Code Playgroud)

但我得到错误:

错误102:'@tblname'附近的语法不正确.'CreatedOn'附近的语法不正确.'@tblname'附近的语法不正确.'CreatedOn'附近的语法不正确.......等等,每张桌子.

sql t-sql sql-server alter-table sql-server-2008

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