最近公司的项目要用到Entity Framework,里面牵扯到实体复杂属性的设计,我摸索了好长时间都没搞懂这个在模型浏览器里该怎么添加,今晚回来加了一会儿班,总算搞出来了。
下面记录下是怎么操作的,以免再次有需要的时候忘记了。
备注:我用的工具是VS2013,选用的Entity Framewok 6.0版本。
创建一个控制台项目,起名“TestProject”,添加一个ADO.Net 实体数据模型,起名“Test”,然后点击添加。
接下来会弹出一个窗口,询问我们是从数据库生成21模型还是创建一个空模型,因为我用的是Model First模式,所以我选择创建空模型。
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsIiclRnblN0LclHdpZXYyd2LcBzNvwVZ2x2bzNXak9CX90TQNNkRrFlQKBTSvwFbslmZvwFMwQzLcVmepNHdu9mZvwFVywUNMZTY18CX052bm9CX90zZNpXQE5EeBRVT4FEVkZXUYpVd1kmYr50MZV3YyI2cKJDT29GRjBjUIF2LcRHelR3LcJzLctmch1mclRXY39zM2cDMwEzMxATNwITM0EDMy8CX0Vmbu4GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.jpg)
创建好模型之后,我们添加实体,起名“Employee”。
接下来再给这个实体添加三个标量属性:Name,Age,Phone和一个复杂属性HomeTown(由Province,City,Area三个部分组成)。标量属性直接添加就可以了,我们说说HomeTown这个复杂属性如何添加。
首先,我们打开VS右侧的 “模型浏览器” 选项卡,在Test(也就是我们创建的实体数据模型的名字)节点下我们可以看到“复杂属性”这个节点:
右击它 —— 点击“添加新的复杂属性”并将其命名为Address,这样我们就创建了一个复杂属性,接下来我们给Address添加Province,City,Area这三个标量属性。
上面这三个属性都是String类型的。
上面的步骤进行完之后我们就可以给刚刚创建的实体Employee添加这个复杂属性了,我们右击实体,点击 新增 —— 复杂属性,命名为HomeTown,然后设置HomeTown的类型为刚刚创建的Address类型。
到这里,一个完整的实体模型就建好了,最后我们来生成一下数据库。
我们接下来插入一条数据试试。
static void Main(string[] args)
{
using(TestContainer db = new TestContainer())
{
Employee emp = new Employee()
{
Name = "张三",
Age = "25",//原谅我,刚刚年龄忘记设成Int型了
Phone = "13333333333",
HomeTown = new Address()
{
Province="江苏",
City="南通",
Area="通州"
}
};
db.EmployeeSet.Add(emp);
db.SaveChanges();
}
}