EFCore连接Oracle测试案例

环境:Oracle11g远程数据库、

vs2019(集成.net Core2.2,安装时选择.NET桌面开发、右边.net core2.2开发工具,和.NET Core跨平台、.net core2.2开发工具)、

vs2019下载NuGet程序包管理器(工具->拓展与更新,安装后关闭vs2019,重启后即可在工具栏找到NuGet包管理器)、

PowerShell6.1(windows自带的版本太低,执行不了命令)

Db first 方式(区别于Code first和Model first)。

1、新建项目:

406ae3204580a0f4e2c369519f814aa542b.jpg

2、刚创建好项目可能会报异常,按异常提示导入System.Console即可。

3、导入EFCore访问Oracle数据库相关程序包(特别注意版本,稍微不一样就可能影响后续操作)如下:

8d466ea8ba7272b53632ec8f35153816645.jpg

(1)右键项目->管理NuGet程序包(注意:浏览下搜索【程序包全名】、勾上预发行版、版本、右边点击安装)

d2cc7ae2a08cb679819b9c6d4a9c7479a99.jpg

(4)导完三个程序包,接下来用NuGet程序包管理控制台(工具->NuGet包管理器->程序包管理控制台):

f3266928b84681bd7909e292b134f9b0fe9.jpg

Scaffold-DbContext "Data Source=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.128.238)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=ORCL)));User Id=EFTEST;Password=EFTEST;" Oracle.EntityFrameworkCore -OutputDir Models

在控制台中输入如上命令,回车即可将数据库中的表导入项目,导入成功后在项目中就能看的,自动生成了Models文件夹和两张表和上下文ModelContext:

534fc4ef0766536801facdcfd378e4c569f.jpg

然后在Program.cs文件中执行如下测试语句:

    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Hello World!");

            Models.ModelContext mc = new Models.ModelContext();
            var x = mc.Test.ToList();
            x.ForEach(t => Console.WriteLine(t.TestDesc + " " + t.TestId));
        }
    }

测试结果如下图:

77218af17e67bad167e576a3fb75bf692a6.jpg

到此为止,测试结束。

CURD测试:

 static void Main(string[] args)
        {
            Console.WriteLine("Hello World!");

            Models.ModelContext mc = new Models.ModelContext();
            //var x = mc.Test.ToList();
            //x.ForEach(t => Console.WriteLine(t.TestId + " " + t.TestDesc + " " + t.TestName));

            //var blog = mc.Blogs.ToList();
            //blog.ForEach(t => Console.WriteLine(t.Blogid + "  " + t.Username));

            var emp = new Models.Blogs
            {
                Blogid = 5,
                Username = "IntraFactory999"
            };
            try
            {
                mc.Add(emp);
                // mc.Update(emp);
                mc.SaveChanges();
                //Console.WriteLine("添加成功!");
                var x = mc.Blogs.ToList();
                x.ForEach(t => Console.WriteLine(t.Blogid + " " + t.Username));
            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message);
            }

/*            var emp = new Models.Test
            {
                TestId = "8",
                TestName = "IntraFactory",
                TestDesc = "intrafactory"

            };
            try
            {
                // mc.Add(emp);
                mc.Remove(emp);
                mc.SaveChanges();
                //Console.WriteLine("添加成功!");
                var x = mc.Test.ToList();
                x.ForEach(t => Console.WriteLine(t.TestId + " " + t.TestDesc + " " + t.TestName));
            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message);
            }*/
        }

项目连接数据库:

ea269b481d22a915bf5c9995e5c1ee8aebf.jpg

转载于:https://my.oschina.net/8824/blog/3063772

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值