EF CodeFirst 入门 for oracle

创建单表插入

1.安装

 

设定DB连接

<connectionStrings>     <add name="connstr" providerName="Oracle.ManagedDataAccess.Client" connectionString="Password=XXX;User ID=XXXX;Data Source=//10.1.1.1:1521/XXXX;" />   </connectionStrings> 

  

 2.创建实体类

public class STUDENT     {         [DatabaseGenerated(DatabaseGeneratedOption.None)]         public int STUDENTID { get; set; }         public string STUDENTNAME { get; set; }         public DateTime? DATEOFBIRTH { get; set; }         public string PHOTO { get; set; }         public float HEIGHT { get; set; }         public float WEIGHT { get; set; }     } 

3.实现DBContext

using System; using System.Collections.Generic; using System.Data.Entity; using System.Data.Entity.ModelConfiguration.Conventions; using System.Linq; using System.Text; using System.Threading.Tasks; using Oracle.ManagedDataAccess.EntityFramework;  namespace EFDemo {     public class SchoolContext:DbContext     {         public SchoolContext():base("name=connstr")         {          }         protected override void OnModelCreating(DbModelBuilder modelBuilder)         {             modelBuilder.HasDefaultSchema("FPCSFCDATA");//指定默认用户             modelBuilder.Conventions.Remove<PluralizingTableNameConvention>(); // 映射的表移除复数,去除 s   //如果这个不加,那么保存数据的时候会在类名后面加小写的s,然后在数据库生成这个表

         } public DbSet<STUDENT> Students { get; set; } } }

4.添加数据

STUDENT stu = new STUDENT() { STUDENTID = 3, STUDENTNAME = "李四", HEIGHT = 180.5F, WEIGHT = 140.5F, DATEOFBIRTH = DateTime.Now, PHOTO = "987654321"};

dc.Students.Add(stu);
dc.SaveChanges();

MessageBox.Show("创建成功");

  

  

  

 

推荐这些文章:

EF CodeFirst

问题
今天做了一个实验
public class Class1 { public string ID { get; set; } public List<string> List { get; set; } }
 
然后用ef生成数据库的时候发现只生成只有ID一个字段的Class1表,那么存的时候List存不存呢?
为什么只生成一个表,而不生成两个表呢?我的目的是ID,List都能存到,怎么改呢??

最佳回答
可以序列化存储,

...

oracle获取表结构

select t.COLUMN_NAME, Decode(t.DATA_TYPE,'NUMBER',DATA_TYPE||'('||DATA_LENGTH||','||DATA_PRECISION||')',DATA_TYPE||'('||DATA_LENGTH||')') DATA_TYPE, t.NULLABLE, t.COLUMN_ID, c.COMMENTS from user_tab_columns t, user_col_comments c where t.table_name = c.table_name and t.co...

oracle更新字段的部分值

举个栗子,字段config_list中的值为[1001,1002,1003,1004]
现在我需要把1002替换成1005,或者干脆把1002去掉
可以用replace
语法

UPDATE table_name SET field_name = REPLACE(field_name, 'from_str', 'to_str') WHERE field_name LIKE '%from_str%';

例子
update config set config_list=replace(config_list, '1002', '1005') where config_list like '%1...

关于EF Core,CodeFirst的总结

废话不说,直接开始:
   Nuget引用Microsoft.EntityFrameWorkCore。
   实现自己的表(并不限于基础类,可以有自己的构造方法,方法,访问器等,以及神奇的[NotMapped] Attribute来标识这个属性不用翻译成数据库表字段)。
   举例说明(相对复杂一点):
public class User
{
[Key, DatabaseGenerated(DatabaseGeneratedOption.Identity)]
...

oracle:根据字段数据长度排序

在项目上遇到了需要按照数据长度来排序查询的问题小记

/*  order by 排序,desc降序,asc升序*/select * from table t order by LENGTH(t.name) desc;
select * from table t order by nvl(length(trim(t.name)),0) desc;
select * from table t order by length(trim(t.name)) desc;

 

...

EF之Code First设置主外键关系

https://www.cnblogs.com/zhusk/p/10972546.html
 
指定类外键有注释(DataAnnotation)和FluentAPI两种方式,下面我们主要使用DataAnnotation指定外键关系 第一种方式

//1-指定导航属性,会自动生成外键,命名规则为:“对象名称_主键名”
public class TUsers
{
[Key]
public int UserId { get; set; }

public string Account { get; set; }

...

EF CodeFirst部署到虚拟主机的问题

问题
之前一直是先建立数据库再去生成模型,在虚拟主机中部署是没有问题的,想试试用CodeFirst的方式做,但比较担心到时候无法部署到普通的虚拟主机上面去。
比如阿里云的,平台是直接分配了一个数据库帐号和一个同名的数据库,但这个帐号和数据库肯定都没有办法去删除或者重建什么的,那部署的时候应该如何部署呢?当需要改动数据库的时候又该怎么弄?

最佳回答
数据库名称肯定是改不了的了,里面的表你可以用codefirst来生成,当然也可以修改

...

webapi创建EFCore框架的CodeFirst模式

使用工具:vs2019
①选择asp.net Core WebApi项目

②框架vs2019最高支持net5

③新建一个net5的类库并创建一个EFCore上下文对象类

④通过nutget包管理器安装如下两个包
一个是EFCore的,一个是用于将领域模型的实体映射到数据库中的。

注意,因为这个webapi项目是net5.0的,所以这两个包最好选低版本的安装,比如5.0,否则会不兼容

⑤在Models里设计好表

字段的限制可以在上下文对象里限制,这样逻辑比较清晰。
public class User
{
public int Id { get; se...

EF Core中通过Fluent API配置一对一关系

继续配置实体之间的第三种关系,即一对一的关系。
以考研报名为例,一个人有唯一的身份证号,在首次报名时会生成一个唯一的考试号,这样身份证号和考试号就是一对一的关系。
同样提供ER图如下:

Person类:
public class Person
{
public string PersonIdentityNum { get; set; }

public string PersonName { get; set; }

public virtual Exam Exam { get; set; }
}
Exam类:
public class Exam
{
pub...

EF Core中通过Fluent API配置一对多关系

接上篇博客,继续演示Fluent API配置一对多的关系。
以班级-学生为例,一个班级有多个学生,一个学生属于一个班级。
ER图如下:

同样的,我们需要准备好如上实体类。
班级类:
public class Class
{
public int ClassId { get; set; }

public string ClassName { get; set; }

public virtual ICollection<Student> Students { get; set; }
}
学生类:
public class Student
{
pu...

文章标题:EF CodeFirst 入门 for oracle
文章链接:https://www.dianjilingqu.com/891.html
本文章来源于网络,版权归原作者所有,如果本站文章侵犯了您的权益,请联系我们删除,联系邮箱:saisai#email.cn,感谢支持理解。
THE END
< <上一篇
下一篇>>