加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

在Entity Framework中使用存储过程(五):如何通过存储过程维护

发布时间:2020-12-16 09:04:43 所属栏目:asp.Net 来源:网络整理
导读:对于数据库设计来说,多对多(或者一对多)是一种常见的数据关系,比如联系人和地址之间的关系。我们通常采用建立关系表的方式来表示这种关系,比如我们创建一张Contact—_Address(ContactID,AddressID)来存储联系人和地址之间的关系。如果我们最终需要通

对于数据库设计来说,多对多(或者一对多)是一种常见的数据关系,比如联系人和地址之间的关系。我们通常采用建立关系表的方式来表示这种关系,比如我们创建一张Contact—_Address(ContactID,AddressID)来存储联系人和地址之间的关系。如果我们最终需要通过存储过程的方式来维护他们之间的关系,该如何做呢?本篇文章给你一个具体的例子来演示如果采用存储过程来建立和删除实体之间的关系。

目录

步骤一、创建数据表
步骤二、创建建立/解除关系的存储过程
步骤三、创建实体数据模型
步骤四、建立关系与存储过程的映射
步骤五、编写建立Contact/Address关联的程序

?步骤一、创建数据表

我们就采用上面提到过的联系人/地址关联的场景,现在我们通过下面的SQL来创建三张表。Contact和Address分别用于存储联系人和地址记录,两者之间的关系存储在Contact_Address表中。

Address:

   1: CREATE TABLE [Address]
   3:     [AddressID]     [INT]          PRIMARY KEY,
   5:     [City]          [NVARCHAR](50) NULL
    
   3:     [ContactID]        [INT]               4:     [LastName]        [NVARCHAR](50)       5:     [FirstName]        [NVARCHAR](50)       6: )

Contact_Address:

3: [ContactID] [INT] NULL REFERENCES [Contact]([ContactID]),1)" id="lnum4"> 4: [AddressID] [REFERENCES [Address]([AddressID]),1)" id="lnum5"> 5: KEY([ContactID],[AddressID])
PROCEDURE [AddAddress] 
   4: )
   6: BEGIN
   8:     VALUES(@ContactID,@AddressID);
PROCEDURE [DeleteAddress] 
   4: AS
   7:     DELETE Contact_Address
   9:       AND AddressID = @AddressID
<AssociationSetMapping Name="Contact_Address" TypeName="ContactModel.Contact_Address" StoreEntitySet="Contact_Address">
   3:     ScalarProperty ="AddressID" ColumnName="AddressID" />
   7:   >  
   8:   ModificationFunctionMapping   9:     InsertFunction FunctionName="ContactModel.Store.AddAddress"  10:         11:         ParameterName="AddressID"  12:         13:         14:         ="ContactID"  15:         16:     InsertFunction  17:     DeleteFunction ="ContactModel.Store.DeleteAddress"  18:         19:           20:         21:         22:           23:         24:     DeleteFunction  25:     26: >

步骤五、编写建立Contact/Address关联的程序

现在我们编写如下的程序,先后创建2个地址和3个联系人,并分别建立它们之间的关系后,通过调用ObjectContext的SaveChanges方法提交到数据库中。