关于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的情况是这样表示主键的