小编Jak*_*cki的帖子

代码优先与模型/数据库优先

使用实体框架4.1代码优先于模型/数据库优先使用EDMX图表有什么优缺点?

我正在尝试完全理解使用EF 4.1构建数据访问层的所有方法.我正在使用Repository模式和IoC.

我知道我可以使用代码优先方法:手动定义我的实体和上下文并用于ModelBuilder微调模式.

我还可以创建一个EDMX图表并选择一个代码生成步骤,该步骤使用T4模板生成相同的POCO类.

在这两种情况下,我最终POCO都得到了ORM不可知的对象和源自的上下文DbContext.

数据库优先似乎最吸引人,因为我可以在企业管理器中设计数据库,快速同步模型并使用设计器对其进行微调.

那么这两种方法有什么区别?是仅仅关于VS2010与企业管理器的偏好?

entity-framework poco ef-code-first entity-framework-4.1 ef-database-first

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

下一代数据库

我正在学习传统的关系数据库(使用PostgreSQL)并进行一些研究我遇到了一些新类型的数据库.CouchDB,DrizzleScalaris仅举几例,下一个要处理的数据库技术是什么?

sql database non-relational-database nosql

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

设计模式真的是语言弱点吗?

今天的模式应该被视为Java和C++中的缺陷或缺失功能吗?

  • 子程序是50年代和60年代机器语言的设计模式.
  • 面向对象类是70年代C的设计模式.
  • 访客,抽象工厂,装饰器和外墙是当今Java和C++的设计模式.

    明天的语言会是什么样子?他们会有什么样的模式?

history design-patterns language-design

36
推荐指数
3
解决办法
4373
查看次数

EntityFunctions.TruncateTime和单元测试

我正在使用System.Data.Objects.EntityFunctions.TruncateTime方法在我的查询中获取日期时间的日期部分:

if (searchOptions.Date.HasValue)
    query = query.Where(c => 
        EntityFunctions.TruncateTime(c.Date) == searchOptions.Date);
Run Code Online (Sandbox Code Playgroud)

这个方法(我相信同样适用于其他EntityFunctions方法)不能在LINQ to Entities之外执行.在单元测试中执行此代码(实际上是对象的LINQ)会导致NotSupportedException抛出:

System.NotSupportedException:此函数只能从LINQ to Entities调用.

DbSets在我的测试中使用存根来存储虚假存储库.

那我应该如何对我的查询进行单元测试?

unit-testing entity-framework stub entity-framework-4

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

使用sql server获取DATEDIFF,不包括周末

我正在使用此查询来获取时间.

SELECT DATEDIFF(dd, ActualStartDate, ActualCompletionDate) AS TimeTaken
FROM TableName
Run Code Online (Sandbox Code Playgroud)

现在我想排除周末,只计算周一至周五.

sql-server-2005

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

堆栈和堆分配

我正在研究内存模型,并且正在努力了解一个进程中存在多少堆.

因此,如果我们有一个包含5个线程的进程,我是否正确地说我们有5个堆栈和1个堆?

如果是这样,线程可以访问彼此的堆栈(或者这正是为什么它们有单独的堆栈,以防止损坏),如果只有1个堆,那么显然它们都访问这个堆,因此需要锁定多个线程?我理解正确吗?

c# multithreading

25
推荐指数
2
解决办法
5924
查看次数

Ninject和MVC3:依赖注入到动作过滤器

我发现了大量关于如何使用Ninject在ASP.NET MVC3中对ActionFilter进行属性注入的不确定文章和问题.

有人能给我一个明确的例子吗?

这是我的自定义身份验证属性.

public class CustomAuthorizeAttribute : AuthorizeAttribute
{
    [Inject]
    public IService Service { get; set; }

    [Inject]
    public IAuthenticationHelper AuthenticationHelper { get; set; }

    public override void OnAuthorization(AuthorizationContext filterContext)
    {
         //My custom code
    }
 }
Run Code Online (Sandbox Code Playgroud)

我正在使用WebActivator来设置Ninject

[assembly: WebActivator.PreApplicationStartMethod(typeof(MyProject.Web.AppStart_NinjectMvc3), "Start")]

 namespace MyProject.Web {

   public static class AppStart_NinjectMvc3 {
        public static void RegisterServices(IKernel kernel) {

           //Binding things
    }

    public static void Start() {
        // Create Ninject DI Kernel 
        IKernel kernel = new StandardKernel();

        // Register services with our Ninject DI …
Run Code Online (Sandbox Code Playgroud)

c# ninject webactivator asp.net-mvc-3

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

为什么我不能用三元运算符将null赋值给十进制?

我不明白为什么这不起作用

decimal? compRetAmount = !string.IsNullOrEmpty(txtLineCompRetAmt.Text) 
    ? decimal.Parse(txtLineCompRetAmt.Text.Replace(",","")) 
    : null;
Run Code Online (Sandbox Code Playgroud)

c# asp.net

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

JSON会将XML替换为数据格式吗?

当我第一次看到XML时,我认为它基本上是树的表示.然后我想:重要的不是它是树木的特别好的代表,而是每个人都同意的.就像ASCII一样.一旦建立,由于网络效应,很难取代.取代它的新方案必须要好得多(可能好10倍).当然,为了国际化,ASCII(大部分)已被(大部分)取代为Unicode.

根据谷歌的趋势,XML有x43领先,但正在下降 - 而JSON增长.

[ 编辑 ]请问JSON会将XML替换为数据格式吗?

  1. 哪个任务?
  2. 哪些程序员/行业?

注意: S表达式(来自lisp)是树的另一种表示,但尚未获得主流采用.还有许多其他提议,例如YAML和Protocol Buffers(用于二进制格式).

我可以看到JSON主宰着与客户端AJAX(AJAJ?)进行通信的空间,这可能会传递回传播到其他系统.

基于SGML的XML比作为文档格式的 JSON更好.我对XML作为数据格式感兴趣.

XML具有JSON缺乏的已建立的生态系统,尤其是定义格式(XML Schema)和转换它们(XSLT)的方法.XML还有许多其他标准,特别是Web服务 - 但它们的重量和复杂性可以说是与XML相悖,并且让人们想要一个新的开始(类似于"Web服务"开始作为CORBA的新起点).

[2010年3月编辑 ]与NoSQL一样,JSON是无模式的.

xml json

17
推荐指数
3
解决办法
9363
查看次数

Dapper MultiMap不适用于具有NULL值的splitOn

我在dapper试图拆分包含的列时出现MultiMaps问题NULL.Dapper似乎没有实例化对象,我的映射函数接收null而不是对象.

这是我的新测试:

    class Product
    {
        public int Id { get; set; }
        public string Name { get; set; }
        public Category Category { get; set; }
    }
    class Category
    {
        public int Id { get; set; }
        public string Name { get; set; }
        public string Description { get; set; }
    }
    public void TestMultiMapWithSplitWithNullValue()
    {
        var sql = @"select 1 as id, 'abc' as name, NULL as description, 'def' as name";
        var product = connection.Query<Product, …
Run Code Online (Sandbox Code Playgroud)

dapper

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