有没有人知道是否可以在现有实体类型上创建一个新属性,该实体类型基于连接在一起的其他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在概念模型级别为我做这项工作.
以下两种编码风格有哪些优点和区别......
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)
我的偏好是简单的简单代码,但有兴趣听到意见,因为我看到许多开发人员坚持漫长的路线.
我正在实现一个实现 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>。
我通常通过在Visual Studio中编写脚本来创建我的SQL表和存储过程.这对我来说非常有效,除了一个简单的烦恼:VS在所有SQL查询和数据操作命令周围放置蓝框.这些框的目的是过分关注VS认为可以在"查询生成器"中编辑查询的事实.
我不想使用Query Builder.我只想要一个漂亮,干净的脚本,它反映了我对数据库引擎应该做什么的奇妙想法.爆炸吧,Jim,我是程序员而不是Microsoft Access的爱好者!
但是,我确实喜欢VS提供的语法高亮和源代码控制集成.
所以我的问题是:如何关闭烦人的蓝盒子?