如何在 asp.net 中创建分层结构
Posted
技术标签:
【中文标题】如何在 asp.net 中创建分层结构【英文标题】:How can i create layered struct in asp.net 【发布时间】:2017-08-22 10:30:04 【问题描述】:我正在学习 C# 和 ASP.NET。
我正在尝试制作一个结构,我不知道它是否可以称为 ORM。
我有一个数据库(使用实体框架),我尝试将 SQL 查询与 aspx 的代码隐藏分开。
我的数据库中有 4 个表(Kitaplar、Musteriler、Kiralamalar、Turler) 在我的 Kitaplar 表中,我有 8 个字段(KitapID(FK)、KitapAdi、ISBN、Yayinevi、Yazaradi、Basimtarihi、Stok、TurTurID)。
我创建了一个类Kitapmodel.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
namespace KütüphaneYonetimSistemi.Models
public class KitapModel
public int KitapID get; set;
public string KitapAdı get; set;
public string ISBN get; set;
public string Yayınevi get; set;
public string YazarAdı get; set;
public DateTime BasimTarihi get; set;
public int Stok get; set;
public int TurTurID get; set;
我还创建了kitapModelProvider.cs
用于数据库连接和其他事情此时我被卡住了。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
namespace KütüphaneYonetimSistemi.Providers
public class kitapModelProvider
public KitapModel getByKitapID(int ID)
KutuphaneYonetimDB db = new KutuphaneYonetimDB();
KitapModel bookListEF = from k in db.Kitaplar
join t in db.Turler
on k.TurTurID equals t.TurID
select new
k.KitapAdı,
k.YazarAdı,
t.TurAdı,
k.Yayınevi,
BasimTarihi = k.BasimTarihi.ToString().Replace(" 12:00AM", "").Replace("Jan", "Ocak").Replace("Feb", "Şubat").Replace("Mar", "Mart").Replace("Jun", "Haziran").Replace("Sep", "Eylül").Replace("Nov", "Kasım").Replace("Oct", "Aralık").Replace("Apr","Nisan"),
k.ISBN,
k.Stok
;
return bookListEF;
public void insertKitap(KitapModel kitap)
KutuphaneYonetimDB db = new KutuphaneYonetimDB();
db.Kitaplar.Add(kitap);
db.SaveChanges();
/*
other methods
*/
在我的createBook.aspx.cs
文件中,我想做类似this
的事情;
KitapModel kitap = new Kitapmodel
kitapAdi = "Harry Potter ve Felsefe Taşı",
ISBN = ......
Yayınevi....
...
Stok = 5,
TurTurID = 1
kitapModelProvider.insertKitap(kitap) // or kitapModel.insertKitap
【问题讨论】:
听起来你的问题真的是“我如何使用实体框架?”具体来说,您似乎想使用实体框架构建存储库。有教程和示例可以帮助您入门。 我想你更想说我如何使用ORM
,这与*** 无关。首先,您需要知道您将使用哪个 ORM ADO.NET - LINQ2SQL - EF 和其他......可用。选择一个并开始搜索它们及其 CRUD 操作,这将是一个好的开始。实体框架也不是数据库。这是一个 ORM。
我可以使用实体框架(或者我认为我可以),但我在代码隐藏中使用它,这是我不想要的。我可以填充实体框架数据库连接,但我不知道如何与我的类建立连接
@AhmetKarabulut 有很多 教程解释了如何使用 Entity Framework,包括 EF's own documentation 和 ASP.NET MVC tutorials
我想我不能清楚地说出我的问题,因为我的英语不好。我想知道如何制作分层结构。我不想学习如何使用 EF
【参考方案1】:
好的,既然您是 ASP.NET 编程的新手,我会尝试将您引向正确的道路。
首先什么是 ORM:
From wikipedia:
对象-关系映射(ORM、O/RM、 和 O/R 映射)在计算机软件中 是一种编程技术 在不兼容之间转换数据 关系数据库中的类型系统 和面向对象编程 语言。这实际上创造了一个 “虚拟对象数据库”可以 从编程中使用 语言。既有免费的,也有 可用的商业软件包 执行对象关系映射, 尽管有些程序员选择 创建自己的 ORM 工具。
它有利于抽象出数据存储(SQL 数据库/NoSQL 数据库等),以便提供可在您的代码中使用的接口。 .NET 中用于连接 SQL 的常用 ORM 有:
ADO.NET LINQ To SQL ADO.NET 实体框架现在您已选择 EF(实体框架)作为对象关系映射 [ORM]。第二步是学习 EF 的基础知识,你可以找到 here。
EF 提供 2 种方法:
代码优先您将在哪里提供 POCO 类及其映射,而 EF 将在 dbcontext 类的 OnBuildingMethod() 中为您创建表设计。
数据库优先创建表格设计的传统方式,然后将数据库连接到应用程序并添加 ADO.NET Entity Data Model
,然后使用它的向导调用所有表格并为您创建它们的 POCO。
在您了解了这些以及它是如何工作的之后,您需要了解EF CRUD Operations。
最后你可以开始使用 EF 查看Repository Pattern 和Unit of Work Pattern。
【讨论】:
感谢您的领导。我会看看这些链接。以上是关于如何在 asp.net 中创建分层结构的主要内容,如果未能解决你的问题,请参考以下文章
如何在 asp.net 中创建 RESTful Web 服务?