读书人

关于C# 反射的有关问题

发布时间: 2013-02-19 11:11:40 作者: rapoo

关于C# 反射的问题
自己写一个框架玩
现在准备通过反射实体类来生成sql语句
public class Employee
{
private int m_EmpId;

public int EmpId
{
get { return m_EmpId; }
set { m_EmpId = value; }
}

private string m_EmpName;

public string EmpName
{
get { return m_EmpName; }
set { m_EmpName = value; }
}

这个是我的实体类 我生成的sql语句就是
Insert into Employee(EmpId,EmpName) values(@EmpId,@EmpName);
现在的问题是 EmpId 对应的是数据库中表的主键 那么我生成的sql语句应该是
Insert into Employee(EmpName) values(@EmpName);
那么我反射的时候如何判断 EmpId 这个字段是主键?
在线等
[解决办法]
在实体类中添加冗余字段来增加信息量,也就是说,你添加
private string KeyFiled;

private Type t;

在生成Model的时候
User u = new User();
u.KeyField = "id";
u.t = typeof(int)
[解决办法]
[加个特性表明我是主键]
public int EmpId
{
get { return m_EmpId; }
set { m_EmpId = value; }
}

怎么加,怎么反射那个特性~你好好研究一下~
[解决办法]
现在,我们可以给SupplierCode属性加一个注释,表示它是主键:

public class Supplier
{
[Key]
public string SupplierCode { get; set; }
public string Name { get; set; }
}

EF CodeFirst的情况是这样表示主键的

读书人网 >C#

热点推荐