03—Code First

Code First模式我们称之为“代码优先”模式,使用Code First模式进行EF开发时开发人员只需要编写对应的数据类(其实就是领域模型的实现过程),然后自动生成数据库。这样设计的好处在于我们可以针对概念模型进行所有数据操作而不必关系数据的存储关系,使我们可以更加自然的采用面向对象的方式进行面向数据的应用程序开发。

下面开工了

创建一个控制台应用程序,创建两个类Orders.cs和OrdersDetail.cs

    public class Orders
    {
        [Key]  //主键
        public int Id { get; set; }
        [StringLength(10)]  //长度
        public string OrdersCode { get; set; }
        public int CustomerID { get; set; }
        public System.DateTime CreateDate { get; set; }
        public virtual List<OrdersDetail> OrdersDetailList { get; set; }
    }
    public class OrdersDetail
    {
        [Key] //主键
        public int Id { get; set; }
        public int ProductID { get; set; }
        [StringLength(100)]//长度
        public string ProductName { get; set; }
        public string UnitPrice { get; set; }
        public int OrderId { get; set; }
        public virtual Orders Orders { get; set; }
    }

下一步,通过NuGet安装EntityFramework。

然后创建OrdersContext.cs

    public class OrdersContext : DbContext
    {
        public DbSet<Orders> Orders { get; set; }
        public DbSet<OrdersDetail> OrdersDetail { get; set; }
    }

客户端调用

 class Program
    {
        static void Main(string[] args)
        {
            var d = DateTime.Now.Date.ToString("yyyyMM");
            var ord = new Orders
            {
                OrdersCode = "100001",
                CustomerID = 1,
                CreateDate = DateTime.Now
            };
            using (var context = new OrdersContext())
            {
                context.Orders.Add(ord);
                context.SaveChanges();
            }
            Console.WriteLine("OK");
            Console.ReadLine();
        }
    }

如果是第一次使用EF Code First的朋友一定会有疑问,我们没有进行任何数据库配置,增加了一条数据通过查询确实保存上了,那么我们的数据到底在哪呢?事实上如果用户不进行数据库配置EF默认会使用“.\SQLEXPRESS”数据库实例,我就不截图了。

下面我们使用自己的数据库,需要配置App.config,也就是数据库连接:

<connectionStrings>

<add name="OrdersContext" connectionString="Data Source=.;Database=OrdersDB;UID=sa;PWD=123456;" providerName="System.Data.SqlClient"></add>

</connectionStrings>

在次运行程序:

好了完成,点击下载代码

时间: 2024-10-16 08:37:52

03—Code First的相关文章

Linux学习之探索文件系统

Linux,一起学习进步- ls With it, we can see directory contents and determine a variety of important file and directory attributes. 通过它,我们可以看见目录的内容.重要的文件和目录属性 ~ ls Applications Downloads Music VirtualBox VMs company Desktop Library Pictures build doc Documen

ios获取手机状态 idfa &nbsp; idfv &nbsp; 网络类型 &nbsp; 分辨率 &nbsp; 获取运营商

//idfa [[[ASIdentifierManager sharedManager] advertisingIdentifier] UUIDString]; //idfv [[[UIDevice currentDevice] identifierForVendor] UUIDString]; //网络类型 - (NSString *) getNet { UIApplication *application = [UIApplication sharedApplication]; NSArra

iPhone判断运营商

- (NSString *)getCarrier { NSString *strCarrier = nil; CTTelephonyNetworkInfo *networkInfo = [[CTTelephonyNetworkInfo alloc] init]; CTCarrier *carrier = [networkInfo subscriberCellularProvider]; if (carrier == nil) { [networkInfo release]; return str

用来辨别设备所使用网络的运营商

- (NSString*)checkCarrier { NSString *ret = [[NSString alloc]init]; CTTelephonyNetworkInfo *info = [[CTTelephonyNetworkInfo alloc] init]; CTCarrier *carrier = [info subscriberCellularProvider]; if (carrier == nil) { return @"0"; } NSString *code

iOS开发 - 如何获取设备的总容量和可用容量 网络运营商 3g/wifi判断 手机型号

镔哥最近开发需获取手机容量,其实这你是一个很好的例子 //硬盘容量 - (float)getTotalDiskSpace { float totalSpace; NSError * error; NSDictionary * infoDic = [[NSFileManager defaultManager] attributesOfFileSystemForPath:[self getHomeDirectory] error: &error]; if (infoDic) { NSNumber *

(三)获取iphone的IMSI

今天的任务是 iPhone上怎样获取 imsi 信息 来判断所属运营商,资料找了很久!总体有两种方案,但是其中一种好像不行 这里我都记录下来吧: 1: 这是使用coreTelephony.framework获取imsi  (我iOS 7 上面使用是没用的 这里我只是记录下) #define PRIVATE_PATH  "/System/Library/PrivateFrameworks/CoreTelephony.framework/CoreTelephony" // Implemen

对象创建

对象创建 interpreterRuntime.cpp 解释器中new指令的入口: // 宏展开 // IRT_ENTRY(void, InterpreterRuntime::_new(JavaThread* thread, ConstantPool* pool, int index)) void InterpreterRuntime::_new(JavaThread* thread, ConstantPool* pool, int index) { ThreadInVMfromJava __t

EF Code First教程-03 数据库迁移Migrator

要在nuget 程序包管理控制台中输入命令 基本命令 Enable-Migrations   //打开数据库迁移 Add-Migration AddBlogUrl    //新增一个数据库迁移版本   AddBlogUrl是要新增版本名称,这个名称必须是唯一的,不能重复 Update-Database  //更新数据库 Update-Database –TargetMigration: 版本名称  //迁移到特定版本(回滚) 详细内容请看:http://www.cnblogs.com/inday

Nodejs in Visual Studio Code 03.学习Express

1.开始 下载源码:https://github.com/sayar/NodeMVA Express组件:npm install express -g(全局安装) 2.ExpressRest 打开目录08_ExpressREST app.js var express = require('express'); var app = express(); //捕获GET方法,并处理返回一个Json,比C#写Json简单多了啊 app.get('/', function (req, res) { re