NET ADO Net Data SetData Reader Linq 2

  • Slides: 10
Download presentation

Способы работы с БД из. NET • ADO. Net – Data. Set/Data. Reader •

Способы работы с БД из. NET • ADO. Net – Data. Set/Data. Reader • Linq 2 SQL • ORM

Object-Relational Mapper public class Base. Entity { public virtual int Id { get; set;

Object-Relational Mapper public class Base. Entity { public virtual int Id { get; set; } } public class User : Base. Entity { public virtual string Login { get; set; } public virtual string First. Name { get; set; } public virtual string Last. Name { get; set; } } public class Topic : Base. Entity { public virtual string Title { get; set; } public virtual User Creator { get; set; } public virtual IList<Message> Messages { get; } } public class Message : Base. Entity { public virtual Topic { get; set; } public virtual string Text { get; set; } public virtual Date. Time { get; set; public virtual User Author { get; set; } }

Object-Relational Mapper var connection = Session. Constructor. Open. Connection(); var command = connection. Create.

Object-Relational Mapper var connection = Session. Constructor. Open. Connection(); var command = connection. Create. Command(); command. Command. Text = @"SELECT TOP 5 * FROM [Message] INNER JOIN [User] Author ON Author. Id = [Message]. Author_Id WHERE Author. Login='Shaddix' ORDER BY [Message]. [Date. Time] DESC"; var reader = command. Execute. Reader(); var result = new List<object>(); while (reader. Read()) { result. Add(new { Text = reader["Text"], Id = reader["Id"] }); } var session = Session. Constructor. Open. Session(); var data = session. Query<Message>(). Where(x => x. Author. Login == "Shaddix"). Order. By. Descending(x => x. Date. Time). Take(5). To. List();

Подходы при работе с ORM • Database-First • Code-First

Подходы при работе с ORM • Database-First • Code-First

Маппинги в NHibernate public class Base. Entity { public virtual int Id { get;

Маппинги в NHibernate public class Base. Entity { public virtual int Id { get; protected set; } } public class User : Base. Entity { public virtual string Login { get; set; } public virtual string First. Name { get; set; } public virtual string Last. Name { get; set; } } • • • NHibernate и *. hbm. xml Fluent. NHibernate и отсутствие всех этих ужастиков (Convention over Configuration) Здесь мы смотрим примеры