首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

关于C# 反射的有关问题

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

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

热点排行