efcore 一對一 一對多 多對多關係

2021-10-02 17:53:32 字數 3799 閱讀 7699

public

class

user

:entity

public

string email

public

string phonenumber

[required][

datatype

(datatype.password)

]public

string password

public

datetime birthday

public

virtual

address address

}

public class address : entity

public string addressline

public virtual user usernagation

}

using system;

using system.collections.generic;

using system.componentmodel.dataannotations;

using system.componentmodel.dataannotations.schema;

using system.text;

namespace cy.smarthospital.queuesystem.domain.model

///

/// 排隊編號

///

[stringlength(8

)]public

string queuenumber

///

/// 排隊順序

///

public

double

? queueorder

///

/// 建立時間

///

public datetime? createtime

///

/// 接診人員類別

///

public

int? handletype

///

/// 接診人員id

///

[required][

stringlength(32

)]public

string handlerid

///

/// 最後修改時間

///

public datetime? lasttime

///

/// **資訊

///

public

virtual

string registerinfoid

///

/// **資訊

///

public

virtual

registerinfo registerinfo

public

virtual

string queueinfoid

///

/// 佇列資訊

///

public

virtual

queueinfo queueinfo

///

/// 排隊人員標籤屬性

///

public icollection queueitempersontags

}}

佇列詳情中存在**資訊表外來鍵

//佇列詳情->**資訊。

modelbuilder.

entity

<

queueitem

>()

//主表

.hasone

<

registerinfo

>

(q =

> q.registerinfo)

//外來鍵實體

.withmany

(r=>r.queueitems)

.hasforeignkey

(r =

> r.registerinfoid)

;//外來鍵

//佇列資訊->佇列詳情

modelbuilder.

entity

<

queueitem

>()

.hasone

<

queueinfo

>

(q =

> q.queueinfo)

.withmany

(q =

> q.queueitems)

.hasforeignkey

(r =

> r.queueinfoid)

;

public

class

user

:entity

public

string email

public

string phonenumber

[required][

datatype

(datatype.password)

]public

string password

public

datetime birthday

///

/// 使用者所擁有的角色

///

public

virtual ilist userroles

///

/// 所擁有的許可權

///

public

virtual ilist userpermissions

}

中間表userroles是乙個集合

public class role:entity

/// /// 角色中所擁有的使用者

///

public ilistuserroles

/// /// 所擁有的許可權

///

public ilistrolepermissions

}

public class userrole

public user user

/// /// 角色id

///

public string roleid

public role role

}

modelbuilder.entity()

.haskey(ur => new );

modelbuilder.entity()

.hasone(ur => ur.user)

.withmany(u => u.userroles)

.hasforeignkey(ur => ur.userid);

modelbuilder.entity()

.hasone(ur => ur.role)

.withmany(u => u.userroles)

.hasforeignkey(ur => ur.roleid);

withmany中使用中間表

表關係 一對一,一對多,多對多

可以在資料庫圖表中的表之間建立關係,以顯示乙個表中的列與另乙個表中的列是如何相鏈結的。更好的方法是將有關出版社的資訊在單獨的表,publishers,中只儲存一次。然後可以在titles表中放置乙個引用出版社表中某項的指標。為了確保您的資料同步,可以實施titles和publishers之間的參照完...

表關係 一對一,一對多,多對多

可以在資料庫圖表中的表之間建立關係,以顯示乙個表中的列與另乙個表中的列是如何相鏈結的。更好的方法是將有關出版社的資訊在單獨的表,publishers,中只儲存一次。然後可以在titles表中放置乙個引用出版社表中某項的指標。為了確保您的資料同步,可以實施titles和publishers之間的參照完...

mySQL 表關係 一對一 一對多 多對多

一對一 a中的乙個實體至多與b中的乙個實體相關聯,且b中的乙個實體也至多與a中乙個實體相關聯。1.一對一 one to one 每個實體的獨有屬性 區別於其他實體 如個人的郵箱,每個使用者的郵箱都是不同的,即使用者與郵箱之間的關係為一對一關係。使用者與購物行為,因為多個使用者都可以購物,則兩者為多對...