复制代码
[Serializable]
public sealed class user
{
public ObjectId id;
public string n;
public int age;
public Birthday birth;
public sealed class Birthday
{
public int y;
public int m;
public int d;
}
}
复制代码
咋一看,有几个地方不规范,1类名首字母和公开字段没有大写,2公开的字段,而没有用属性,3字段
命名没表达它的意思。现在逐个解释一下,类名和字段没大写首字母主要是数据库里的命名是遵循js的
,用js表示时大家一般会这样写:
var user={id:ObjectId("123456"),n:"loogn",age:23,birth:{y:1989,m:7,d:7}}
然而,可能有人会说可以用MongoDB.Bson.Serialization.Attributes.BsonElement这样一个Attribute关联
呢!不过我不会那样做,原因就是太麻烦了!这里可能还是有疑问,留到第3个问题说。
复制代码
public sealed class User : BLL.BaseBLL<DAL.User, user>
{
public user FindOneByName(string name)
{
var doc = base.FindOne(Query.EQ("u", name), P1);
return doc;
}
/// <summary>
/// 保证不为null
/// </summary>
/// <param name="doc"></param>
private void P1(ref user doc)
{
if (doc == null)
{
doc = new user();
}
P2(ref doc);
}