Entity Framework ModelFirst尝试
前言
Model First我们称之为“模型优先”,这里的模型指的是“ADO.NET Entity Framework Data Model”,此时你的应用并没有设计相关数据库,在Visual Studio中我们通过设计对于的数据模型来生成数据库和数据类。
简单演示使用过程
第一步:首先还是添加一个简单的控制台应用程序,然后在此项目上添加一个 ADO.NET 实体数据模型。
第二步:选择空模型。
第三步:在模型设计视图中,添加新实体
点击确定后
第四步:在Order实体上在添加两个属性,Customer(订单所属客户)类型为string,OrderDate(订单下单日期)类型为DateTime
字段类型设置,就在当前字段右键===>>>属性然后找到类型设置即可。
第五步:再添加一个实体OrderDetail订单详细,Product产品
第六步:我们添加二者之间的关系,“Order”和“OrderDetail”是一对多的关系,“Order”可以通过“OrderDetails”属性访问“OrderDetail”实体,“OrderDetail”可以通过“Order”属性访问“Order”实体,并且添加了一个外键约束到“OrderDetail”中
点击确定,添加之后的关系为
到目前为止Model First中的Model已经创建结束,下面就需要生成到数据库了,在模型设计视图空白处选择“根据模型生成到数据库…”:
并且确保数据库中已经存在一个空白数据库
第七步:选择并添加数据链接
然后点击下一步后,会看到如下界面
然后再点击完成即可,看到生成的Sql脚本。
再然后,右键Sql脚本,点击执行
最终数据库的此数据库多了两个表
简单代码测试
class Program { static void Main( string [] args) { using ( var db = new ModelTestContainer()) { Order Order = new Order(); Order.Customer = "aehyok" ; Order.OrderDate = DateTime.Now; db.Orders.Add(Order); db.SaveChanges(); IQueryable<Order> Orders = from Orderes in db.Orders select Orderes; foreach (Order O in Orders) { Console.WriteLine( "OrderID is {0},Customer is {1}" , O.ID, O.Customer); } } Console.ReadLine(); } } |
运行效果为
运行了两次,所以添加两条数据。
注意:如果我们的模型发生改变,只需要在模型设计视图修改模型,让后保存此时实体类就会相应改变,然后选择“从模型生成到数据库”重新执行生成的脚本即可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构