Hướng dẫn sử dụng Entity Framework trong C#

Giới thiệu Entity Framework

Entity Framework phát hành đầu tiên vào năm 2008 nhằm hỗ trợ sự tương tác giữa các ứng dụng trên nền tảng .NET với các cơ sở dữ liệu quan hệ. Hay nói cách khác, nó là một công cụ giúp ánh xạ giữa các đối tượng trong phần mềm của bạn với các bảng của một cơ sở dữ liệu quan hệ.

Chuẩn bị

1/ Phần mềm Visual Studio

2/ Phần mềm SQL Server

Tạo project và cài đặt Entity Framework

1/ Tạo project: Mở Visual Studio -> tạo một project và đặt tên EntityFrameworkDemo

hướng dẫn sử dụng entity framework trong c#

2/ Cài đặt Entity Framework phiên bản mới nhất

Trong Solution Explorer, chuột phải lên project -> chọn Manage NuGet Packages…

Chọn Entity Framework -> chọn Install

Chọn OK

Chọn I Accept

Sau khi cài đặt thành công, chúng ta sẽ nhìn thấy thông báo như hình bên dưới

Hướng dẫn sử dụng Entity Framework trong C# – Chuẩn bị cơ sở dữ liệu

1/ Mở SQL Server Management Studio -> kết nối đến server

2/ Tạo một cơ sở dữ liệu tên EntityDB

3/ Tạo một table tên Student có 4 column là StudentID, StudentName, StudentGender và Address

Sử dụng Entity Framework

1/ Tạo ADO.NET Entity Data Model

Trong Solution Explorer, chuột phải lên project -> chọn Add -> chọn New Item…

Chọn Visual C# Items -> chọn ADO.NET Entity Data Model -> nhập DatabaseFirstModel ->chọn Add

Chọn  EF Designer from database -> chọn Next

Chọn kết nối hiện có hoặc chọn New Connection… để thiết lập kết nối mới.

Trường hợp chọn New Connection… -> chọn tên máy chủ (Server name), chọn cơ sở dữ liệu (Database name) -> chọn OK

Chọn Next

Chọn table và chọn Finish

Chọn 2 lần OK

Kết quả thu được sẽ như hình bên dưới. Lưu ý phải lưu DatabaseFirstModel.edmx trước khi thực hiện viết code

2/ Viết code: Mở Program.cs và nhập code như sau

3/ Mở SQL Server Management Studio -> mở bảng Student và thêm dữ liệu

4/ Build và run chương trình

Một số xử lý khác

1/ Thêm dữ liệu với Entity Framework

// Thông tin của sinh viên được thêm mới
var student = new Student();
student.StudentID = 3;
student.StudentName = "Lê Thị Hồng";
student.StudentGender = "Nam";
student.Address = "Bình Dương";
// Thêm vào database
using (var db = new EntityDBEntities()) 
{
   db.Students.Add(student);
   db.SaveChanges();
}
}

2/ Cập nhật dữ liệu Entity Framework (Cập nhật giới tính thành Nữ cho sinh viên có id là 3)

using (var db = new EntityDBEntities())
{
  var update = (from u in db.Students where u.StudentID == 3 select u).Single();
  u.StudentGender = "Nữ";
  db.SaveChanges();
}

3/ Xóa dữ liệu Entity Framework (Xóa sinh viên có id là 3)

using (var db = new EntityDBEntities())
{
  var delete = (from d in db.Students where d.StudentID == 3 select d).Single();
  db.Students.Remove(delete);
  db.SaveChanges();
}

Sưu tầm: Nguyễn Tuấn Khiêm

Nguồn: giasutinhoc.vn

Nhúng Chrome trong C# App bằng CefSharp

Giới thiệu

Đã bao giờ cố gắng để tích hợp một trình duyệt web đáng tin cậy và nhanh chóng trong ứng dụng của bạn chỉ để nhảy qua vòng thử?

Trong mẹo này, bạn sẽ học cách dễ dàng để tích hợp thành phần trình duyệt web CefSharp tuyệt vời (dựa trên Chromium ) vào ứng dụng C # của bạn.

Sau đó, bạn có thể sử dụng trình duyệt web này:

  • Để cung cấp cho người dùng trải nghiệm duyệt web tích hợp
  • Thêm giao diện người dùng nhúng được lập trình trong HTML / JavaScript
  • Đối với tự động hóa web

CefSharp là đáng tin cậy, nhanh, hoàn toàn mã nguồn mở và không cần bất kỳ phụ thuộc thêm nào được cài đặt bởi người dùng cuối (ngoại trừ VC ++ Thời gian chạy 2013).

Trong hướng dẫn này, chúng tôi sẽ sử dụng một dự án WinForms nhưng CefSharp hoạt động bình đẳng với các dự án WPF.

Bắt đầu

Làm theo các bước sau để nhanh chóng bắt đầu với CefSharp.

Dự án

1. Tạo một dự án Windows Forms Application (C #) với .NET 4.5.2

2. Tên dự án của bạn (ví dụ: " CefTest")

DLL (Phương pháp NuGet)

3A) Nếu bạn sử dụng NuGet , bạn có thể thêm  CefSharp.WinForms  từ kho NuGet, và bỏ qua phương pháp thủ công dưới đây.

3B) Nếu bạn sử dụng NuGet, hãy điều hướng đến  SOLUTION> Configuration Manager và đặt dự án của bạn lên x86 hoặc x64 vì AnyCPU hiện không được hỗ trợ.

DLL (Phương pháp thủ công)

3A) Tải về các chương trình CefSharp và giải nén chúng.

3B) Nhấp chuột phải vào dự án của bạn và nhấp vào "Add Reference", sau đó chọn "Browse".

3C) Chọn các tệp DLL này:

  • CefSharp.dll
  • CefSharp.Core.dll
  • CefSharp.WinForms.dll

3D) Chọn tất cả các tệp trong ZIP:

3E) Sao chép các tệp này vào thư mục Debug của Project (bên trong Bin ):

CODE

4. Nhấp chuột phải vào biểu mẫu chính của bạn và chọn "View Code".

5. Thêm code sau đây:

Thêm các thư viện sau:

using CefSharp;
using CefSharp.WinForms;

Sao chép này vào phần mã của bạn:

public ChromiumWebBrowser browser;
public void InitBrowser(){
    Cef.Initialize(new CefSettings());
    browser = new ChromiumWebBrowser ("www.google.com");
    this.Controls.Add(browser);
    browser.Dock = DockStyle.Fill;
}

Gọi InitBrowser()ngay sau  InitializeComponent():

InitBrowser()

Code của bạn cuối cùng sẽ giống như sau:

Chạy!

6. Nhấn F5 và bạn sẽ thấy trang chủ Google!

Xử lý sự cố


Một ngoại lệ không được quản lý của loại 'System.IO.FileNotFoundException' xảy ra trong trình duyệt.exe 
Thông tin bổ sung: Không thể tải tập tin hoặc lắp ráp 'CefSharp.Core.dll' hoặc một trong những phụ thuộc của nó.

Nếu bạn gặp lỗi này, đảm bảo rằng bạn đã   cài đặt Visual C ++ 2013 Redistributable .

 


Một ngoại lệ không được quản lý của loại 'System.BadImageFormatException' xảy ra trong trình duyệt.exe 
Thông tin bổ sung: Không thể tải tệp hoặc lắp ráp 'CefSharp.Core, Phiên bản = 43.0.0.0, Văn hoá = trung lập, 

Nếu bạn gặp lỗi này, có nghĩa là bạn đang sử dụng máy tính 64-bit và ứng dụng của bạn được xây dựng trong chế độ AnyCPU. Bạn cần thay đổi chế độ này sang chế độ x86 hoặc x64:

  1. Mở bảng điều khiển giải pháp
  2. Nhấp chuột phải vào dự án của bạn> Thuộc tính dự án
  3. Nhấp vào tab Xây dựng
  4. Thay đổi Mục tiêu nền tảng thành x86 hoặc x64

 

<ảnh chụp màn hình không do tác giả cung cấp>

 

Trình duyệt Sharp

Nguyễn Tuấn Khiêm

Nguồn: www.codeproject.com

Dịch bởi: Google Tranlate

Nhúng video trên youtube vào winform

Xin chào các bạn!

Hôm nay mình muốn chia sẻ với các bạn cách nhúng video trên YouTube vào Winform, các bạn thực hiện như video bên dưới:

 

 

Người chia sẻ: Nguyễn Tuấn Khiêm 

Nguồn: FoxLearn

Cách thiết lập lại các cột tự động tăng sau khi xóa các bản ghi để cột có trình tự theo thứ tự tăng dần SQL Server

Sau khi xóa một số bản ghi thì thứ tự tăng dần không còn đúng trình tự, để thiết lập lại trình tự tăng dần có các cách sau:

Cách 1:

Dùng lệnh:

USE AdventureWorks2012; 
GO 
TRUNCATE TABLE HumanResources.JobCandidate;
GO

Cách này dùng để xóa trắng dữ liệu nhưng với những bảng có khóa ngoại thì không thực hiện được lệnh này.

Cách 2:

Chọn Generate Scripts lưu lại Schema and data.

Sau đó, xóa bảng rồi tạo lại bảng mới với Schema and data đã lưu.

Cách 3:

Dùng lệnh:

DBCC CHECKIDENT  
(  
    table_name [, { NORESEED | { RESEED [, new_reseed_value ] } } ] 
) 
[ WITH NO_INFOMSGS ]

Giải thích lệnh:

table_name: Tên bảng cần thiết lập lại.

NORESEED: Chỉ định rằng không nên thay đổi giá trị nhận dạng hiện tại.

RESEED: Chỉ định rằng giá trị nhận dạng hiện tại cần được thay đổi.

new_reseed_value: Là giá trị mới để sử dụng như giá trị hiện tại của cột nhận dạng

WITH NO_INFOMSGS: Ngăn chặn tất cả các tin nhắn thông tin.

Ví dụ: cần thiết lập giá trị tự động tăng cho bảng 'Person.AddressType' bắt đầu từ 1020 thì thực hiện lệnh như sau:

GO 
DBCC CHECKIDENT ('Person.AddressType', RESEED, 1020); 
GO

Chúc các bạn thành công!

Nguyễn Tuấn Khiêm

ReportViewer - object datasource, nested objects return #Error

Nếu bạn đang sử dụng Visual Studio 2012 và Trình xem báo cáo, bạn có thể đã gặp sự cố với việc sử dụng Thuộc tính lồng nhau trên báo cáo với các trường trả về lỗi #Error.

Cách khắc phục:
Bạn phải đảm bảo tất cả các lớp được tham chiếu trong báo cáo đều có thuộc tính [Serializable] cho MỌI thuộc tính, và phải được khai báo các lớp dạng Public.

để sử dụng các thuộc tính lồng vào nhau trên báo cáo,  cần điền vào biểu thức sao:
=Fields!SanPham.Value.DonViTinh.Ten

Biểu thức này thêm một trường vào báo cáo là ba thuộc tính nằm sâu trong đối tượng mà báo cáo ràng buộc.

Nguồn dữ liệu báo cáo liên kết với lớp Sản Phẩm, lớp Sản Phẩm chứa thuộc tính Đơn Vị Tính, lớp Đơn Vị Tính có chứa thuộc tính Tên.

Các lớp Sản Phẩm, Đơn Vị Tính, Tên phải được sắp xếp theo thứ tự và phải có thuộc tính [Serializable].
Vd: lớp Sản Phẩm

Lớp Đơn Vị Tính

Và kết quả sẽ được :