在Entity Framework 4.0中(Ef4)中解决SaveChanges()前获取自增ID的问题

    /// <summary>
    /// 用户数据交互
    /// </summary>
    public class User
    {
        private Entity.HappyOAEntities db = new Entity.HappyOAEntities();
        /// <summary>
        /// 注册新用户
        /// </summary>
        /// <param name="user"></param>
        /// <param name="login"></param>
        /// <returns></returns>
        public int Add(Entity.User user, Entity.Login login)
        {
            //特殊需求,自定义事务
            using (Entity.HappyOAEntities db2 = new Entity.HappyOAEntities())
            {
                db2.Connection.Open();
                using (var tran = db2.Connection.BeginTransaction())
                {
                    db2.Login.AddObject(login);
                    db2.SaveChanges();
                    user.ID = login.ID;
                    db2.User.AddObject(user);
                    db2.SaveChanges();
                    tran.Commit();
                    if (db2.Connection.State == System.Data.ConnectionState.Open)
                        db2.Connection.Close();
                }
            }
            return login.ID;
        }
    }
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在.NET Framework 4.0上使用Entity Framework连接mysql数据库需要使用MySQL Connector/NET提供的MySQL.Data.EntityFramework组件。以下是具体步骤: 1. 下载并安装MySQL Connector/NET。 2. 在Visual Studio创建一个新项目。 3. 在项目添加对MySQL.Data.EntityFramework的引用。 4. 在App.config或Web.config文件添加以下配置节: ```xml <configuration> <configSections> <section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" /> </configSections> <connectionStrings> <add name="MyDbContext" connectionString="server=localhost;user id=root;password=my_password;database=my_database" providerName="MySql.Data.MySqlClient" /> </connectionStrings> <entityFramework> <defaultConnectionFactory type="MySql.Data.Entity.MySqlConnectionFactory, MySql.Data.Entity.EF4" /> <providers> <provider invariantName="MySql.Data.MySqlClient" type="MySql.Data.MySqlClient.MySqlProviderServices, MySql.Data.Entity.EF4" /> </providers> </entityFramework> </configuration> ``` 其,MyDbContext是你的DbContext的名称,connectionString是你的mysql连接字符串,invariantName是mysql的提供程序名称。 5. 创建一个DbContext类,继承自System.Data.Entity.DbContext,并添加以下代码: ```csharp using System.Data.Entity; using MySql.Data.EntityFramework; [DbConfigurationType(typeof(MySqlEFConfiguration))] public class MyDbContext : DbContext { public MyDbContext() : base("MyDbContext") { } public DbSet<MyEntity> MyEntities { get; set; } } ``` 其,MyEntity是你的实体类。 6. 在程序使用DbContext进行数据访问。 ```csharp using (var db = new MyDbContext()) { var myEntity = new MyEntity { Name = "Test" }; db.MyEntities.Add(myEntity); db.SaveChanges(); } ``` 以上就是在.NET Framework 4.0上使用Entity Framework连接mysql数据库的步骤。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值