1. 程式人生 > >Entity Framework中 定義資料庫和驗證

Entity Framework中 定義資料庫和驗證

Model使用DataAnnotations定義資料庫和驗證

using System.ComponentModel.DataAnnotations;

using System.ComponentModel.DataAnnotations.Schema

注意這裡的驗證會在web客戶端和EF端同時驗證。

[Key]

資料庫: 定義主鍵

[Required]

資料庫: 會把欄位設定成not null

驗證: 會要求必須輸入

是否可以為null [Required(AllowEmptyStrings = false)] 不能為null和空字串

[MaxStringLegth]

資料庫: 欄位長度

驗證: 驗證是否超出長度

[MinStringLegth]

驗證: 驗證是否長度不夠

[NotMapped]

不和資料庫匹配的欄位,比如資料庫存了First Name, Last Name, 我們可以建立一個屬性Full Name, 資料庫中沒有,但是可以使用到其它地方。

[ComplexType]

複雜型別,當你想用一個表,但是表中其它的列做成另外一個類,這個時候可以使用.

比如這裡BlogDetails是Blog表的一部分,在Blog類中有個屬性是BlogDetails

[ComplexType]public class BlogDetails{    public DateTime? DateCreated { get; set; }    [MaxLength(250)]    public string Description { get; set; }}

實際的表結構就會是這樣:

jj591583_figure06(en-us,MSDN_10)

[ConcurrencyCheck]

表示併發標識, 標記為ConcurrencyCheck的列,會在更新資料前,檢查有沒有改變,如果改變了,說明期間發生過資料修改。這個時候會導致操作失敗,出現DbUpdateConcurrencyException

[Timestamp]

這種資料型別表現自動生成的二進位制數,確保這些數在資料庫中是唯一的。timestamp 一般用作給錶行加版本戳的機制。儲存大小為 8 位元組. 所以對應的.net 型別是Byte[]

一個表只能有一個 timestamp 列.

[Table] [Column]

用來表示資料庫匹配的細節

[Table("InternalBlogs")]public class Blog[Column("BlogDescription", TypeName="ntext")]public String Description {get;set;}

[DatabaseGenerated]

資料庫中有些欄位是觸發器類似的創造的資料,這些不希望在更新的時候使用, 但是又想在讀取出來,可以用這個標記

[DatabaseGenerated(DatabaseGenerationOption.Computed)]public DateTime DateCreated { get; set; }

[ForeignKey]

public class Post{    public int Id { get; set; }    public string Title { get; set; }      public DateTime DateCreated { get; set; }    public string Content { get; set; }    public int BlogId { get; set; }    [ForeignKey("BlogId")]    public Blog Blog { get; set; }    public ICollection<Comment> Comments { get; set; }}

[InverseProperty]

如果子表使用了ForeignKey, 父表又使用字表的Collection物件會導致,在子表中生成多個外來鍵

這個時候,需要在父表類中的子表Collection物件上新增上這個Attribute表明會重用子物件的哪個屬性作為外來鍵。

相關推薦

Entity Framework 定義資料庫驗證

Model使用DataAnnotations定義資料庫和驗證 using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations.Schema 注意這裡的驗證會在web客戶端和EF端同時驗證。

C# Entity Framework的IQueryableIQueryProvider詳解

oid display provide 分析 當前 負責 nbsp enum share 前言 相信大家對 Entity Framework 一定不陌生,我相信其中Linq To Sql是其最大的亮點之一,但是我們一直使用到現在卻不曾明白內部是如何實現的,今天我們

Entity Framework Schema是什麽

原來 使用 來看 創建 func () byte http object 在使用Entity Framework時,會註意到下面這句: protected override void OnModelCreating(DbModelBuilder modelBuilde

Entity framework使用事務

多線程 exe 上下文 保存數據 調用 real 默認 write sin 默認情況下,當EF調用SaveChanges()時,會把生成的所有SQL命令“包”到一個“事務(transaction)”中,只要有一個數據更新操作失

REST framework 的 Request Response

Request from rest_framework.request import Request REST framework 中的request和Django中的HttpRequest的是不一樣的,它是繼承於SimpleTemplateResponse, 而SimpleT

HTML--定義headerfooter高度中間自適應

<html> <head> <meta charset="utf-8" /> <title></title> <style> html,

Robot Framework操作MySQL資料庫Oracle資料庫

一、Robot Framework連線MySQL資料庫 1.安裝databaselibrary、pymsql   通過cmd命令執行pip install robotframework-databaselibrary==1.1.1,安裝指定版本   通過cmd命令執行pip install&n

entity framework 使用 LINQ 對錶進行左關聯查詢且group by 分組查詢的示例,並且按小時分組查詢時間段

有表RealTimeDatas的欄位RecordTime儲存了實時時間,格式為DateTime 現在需要以小時進行分組統計每個時間段的最大值,最小值,和平均值 同時,另一個表Devices中有標準溫度溼度最大最小值範圍,需要將這個結果一併關聯到查詢結果中    

淺談Entity Framework的資料載入方式

如果你還沒有接觸過或者根本不瞭解什麼是Entity Framework,那麼請看這裡http://www.entityframeworktutorial.net/EntityFramework-Architecture.aspx,其中的一系列文章以非常簡單易懂的形式一步步

java定義常量C#定義常量的區別

一、常量定義的基本注意事項。   在Java語言中,主要是利用final關鍵字()來定義常量。當常量被設定後,一般情況下就不允許再進行更改。如可以利用如下的形式來定義一個常量:final double PI=3.1315。在定義這個常量時,需要注意如下內容:   一是常

java定義常量變數

        java沒有叫 全域性變數的東西(有全域性變數還叫OO嗎?);原因:Java將所有設計都基於物件的基礎上。Java的全域性變數只能對一個類內部而言。能夠在類內的任何地方使用的變數就是全域性變數,而只在某個特定的函式或者區域性的程式塊內使用的變數則是區域性變

Django-rest_framework利用jwt登入驗證時,自定義返回憑證登入校驗支援手機號

安裝 pip install djangorestframework-jwt 在Django.settings中配置 REST_FRAMEWORK = { 'DEFAULT_AUTHENTICATION_CLASSES': ( 'rest_framework_jw

asp.net mvc常用的資料註解驗證以及entity framework資料對映的一個例項

下面是model層的管理員資訊表 在此Model上我們用到了asp.net mvc的資料註解和驗證,可用來作為後端驗證,entity framework對資料庫的對映 using System; 2 using System.Collections.Generic;

譯文:使用MVC5的Entity Framework 6入門(五)——MVC程式實體框架的Code First遷移部署

MVC程式中實體框架的Code First遷移和部署 這是微軟官方教程Getting Started with Entity Framework 6 Code First using MVC 5 系列的翻譯,裡是第五篇:MVC程式中實體框架的Code Firs

Entity Framework Core 資料庫Migrations命令Update更新資料庫模型

之前已經建立了模型,並且使用了 Add-Migration MyFirstMigration  命令生成了遷移檔案,然後更新了模型。 不要刪除原來的遷移檔案,執行 Add-Migration MyFi

在am定義消息集束,並在CO驗證之後拋出異常。

void 按鈕 span lua throws ansi log oaf ext.get 需求:在頁面上點某個按鈕的時候,需要收集所有異常並拋出。 -------------------------------------------方式1:參考 EBS OAF開發中的錯誤

LINQ TO SQLEntity Framework 的關系 你了解多少?

mode 最小 -m 發的 開發 content 內容 語言 account 1. LINQ TO SQL 和EF 特點: LINQ TO SQL和Entity Framework都是一種包含LINQ功能的ORM 也就是所謂的關系對象的映射。其中包括的有DBFrist

Entity Framework 添加、附加、實體狀態

鍵值 name 五個 能夠 att first 通過 數據集 attach   這篇文章將會覆蓋如何新增和附加實體到上下文以及在 SaveChanges 中Entity Framework 如何處理它們。 Entity Framework 會在實體與上下文連接時追蹤它們的

為什麽C++聲明定義要分開寫

使用 還得 開始 階段 怎麽辦 clu 即使 tip 文件中 現在開始寫項目了,你會發現我們一般都要寫一個cpp,對應的還得有一個h文件,那麽為什麽在C++中我們要這麽做? .h就是聲明,.cpp就是實現,而所謂分離式實現就是指“聲明”和“定義”分別保存在不同的文件中,聲明

17、C#的常量結構的定義與使用

c3在C#裏面,常量指的是固定不變的量。這個常量可以是數值型、文本型或布爾型。例如: //定義常量 const int AGE=16; const string NAME="小紅"; const bool FLAG=true;