在我的查询中我需要返回, IEnumerable但我不知道这个动作是否使查询再次执行?
var data = Repository<Person>.Find().AsEnumerable();
Find()返回IQueryable,因为IQueryable继承IEnumerable.我怀疑是否AsEnumerable重复执行.
我知道
var data = Repository<Person>.Find().ToList()两次执行查询.一对一Find()和二Tolist()
我有一个名为IEntity的接口,到目前为止有一个名为Entity的具体类,该接口具有只读属性.我宁愿映射接口,但由于接口不能有私有字段,我不能使用带有前缀选项的选项camelcase字段来映射它,所以我该怎么办?
public interface IEntity
{public readonly string Name{get;} }
public class Entity:IEntity
{public readonly string Name{get;}}
public class EntityMap:ClassMap<IEntityMap>
{
//how to map the readonly property
}
Run Code Online (Sandbox Code Playgroud) 出于某种原因,我不想让用户创建对象的实例,而不是向构造函数发送属性,但我知道对象应该有默认构造函数,因此可以创建一个不带发送requierd属性的实例.有什么方法可以防止这个问题吗?若是,是否有任何副作用?
在类 Person 中,我与类 Position 相关,类 Position 与类 PositionTitle 相关,并且 PositionTitle 有一个名为 Title 的属性
public class Person
{
public position Position{get;set;}
public string Name{get;set;}
public DateTime BirthDate{get;set;}
public bool IsAdmin{get;set;}
public int Age{get;set;}
}
public class position
{
public positionTitle PositionTitle{get;set;}
public bool IsSystem{get;set;}
}
public class PositionTitle
{
public string Title{get;set;}
}
Run Code Online (Sandbox Code Playgroud)
我有一个字符串“Person.Position.PositionTitle.Title”,我怎样才能用这个字符串获取person的这个属性?
编辑:
我应该添加一些东西,我要获取人员的所有属性,直到进入系统类型,我的意思是我想将这些属性作为字符串{Name,Age,IsAdmin,BirthDate,IsSystem,Title}
我怎么能?
EDiT2:还有一个问题,Position 本身可以与 Person 相关,如果我获取 person 的属性并递归地获取与 Person 相关的那些类的属性,将会出现一个不间断的循环,因为 Person 有一个职位和职位都有人
我想拥有一个具有原始类型的对象的所有属性,如果该对象与另一个类有关系,我想拥有另一个类的原始属性
问题是如果实体A有实体B而B有A,我该怎么办
在简单的情况下,通过使用反射我可以得到第一级的原始属性,但是,我不能进入实体B并再次获得A的原始属性,将创建一个循环,你提供什么?
public class A
{
public string Name{get;set;}
public B B{get;set;}
}
public class B
{
public string Category{get;set;}
public A A{get;set;}
}
Run Code Online (Sandbox Code Playgroud)