小编Jef*_*dge的帖子

Linq to Entities和连接属性

有没有人知道是否可以在现有实体类型上创建一个新属性,该实体类型基于连接在一起的其他2个属性?

例如,我的人员实体类型包含这些字段"ID","Forename","Surname","DOB"

我想创建一个名为"Fullname"的新字段

Forenames + " " + Surname
Run Code Online (Sandbox Code Playgroud)

所以我最终得到了"ID","Forename","Surname","DOB","Fullname".

我知道我可以通过编程方式使用Linq来做到这一点

var results = from p in db.People
select new { 
ID = p.ID, 
Forename = p.Forename, 
Surname = p.Surname, 
DOB = p.DOB,
Fullname = p.Forename+ " " + p.Surname
};
Run Code Online (Sandbox Code Playgroud)

然后打电话给像

var resultsAfterConcat = from q in results 
where q.Fullname.Contains(value)
select q;
Run Code Online (Sandbox Code Playgroud)

但是,我真的很想使用Linq to Entities在概念模型级别为我做这项工作.

c# linq linq-to-entities c#-3.0

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

C#BestPractice:私有var和Public Getter/Setter或Public Var

以下两种编码风格有哪些优点和区别......

public void HelloWorld () {

        private string _hello;

        public string Hello {    
           get
            {
                return _hello;
            }
           set
            {
                _hello = value;
            }
        }
}
Run Code Online (Sandbox Code Playgroud)

要么

public void HelloWorld () {

        public string Hello { get; set; }

}
Run Code Online (Sandbox Code Playgroud)

我的偏好是简单的简单代码,但有兴趣听到意见,因为我看到许多开发人员坚持漫长的路线.

c#

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

如何使用代码契约在字典包装器上实现 TryGetValue

我正在实现一个实现 IDictionary 的类。但我无法匹配 TryGetValue 的代码合同。

这是代码的相关部分:

class Wrapper : IDictionary<string, object> 
{
    ...
    IDictionary<string,object> dictionary;  

    public bool TryGetValue(string key, out object value)
    {
        var result = dictionary.TryGetValue(key, out value);
        Contract.Assume(result == ContainsKey(key));
        return result;
    }

    public bool ContainsKey(string key)
    {
        Contract.Ensures(Contract.Result<bool>() == dictionary.ContainsKey(key));
        return dictionary.ContainsKey(key);
    }

    ...
}
Run Code Online (Sandbox Code Playgroud)

静态分析抱怨:

CodeContracts:确保未经证实:Contract.Result<bool>() == @this.ContainsKey(key)

我应该怎样做才能满足合同要求?

备注:当密钥是通用的(如 )时,不会出现该问题Wrapper<TKey> : IDictionary<TKey, object>

c# code-contracts

5
推荐指数
0
解决办法
1113
查看次数

在Visual Studio SQL编辑器中,如何摆脱框?

我通常通过在Visual Studio中编写脚本来创建我的SQL表和存储过程.这对我来说非常有效,除了一个简单的烦恼:VS在所有SQL查询和数据操作命令周围放置蓝框.这些框的目的是过分关注VS认为可以在"查询生成器"中编辑查询的事实.

我不想使用Query Builder.我只想要一个漂亮,干净的脚本,它反映了我对数据库引擎应该做什么的奇妙想法.爆炸吧,Jim,我是程序员而不是Microsoft Access的爱好者!

但是,我确实喜欢VS提供的语法高亮和源代码控制集成.

所以我的问题是:如何关闭烦人的蓝盒子?

sql-scripts visual-studio

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