2 using System.Collections.Generic;
\r
5 using NUnit.Framework;
\r
7 using System.Data.Linq;
\r
13 namespace Test_NUnit_MySql
\r
15 namespace Test_NUnit_OracleODP
\r
17 namespace Test_NUnit_Oracle
\r
19 namespace Test_NUnit_PostgreSql
\r
21 namespace Test_NUnit_Sqlite
\r
23 namespace Test_NUnit_Ingres
\r
24 #elif MSSQL && MONO_STRICT
\r
25 namespace Test_NUnit_MsSql_Strict
\r
27 namespace Test_NUnit_MsSql
\r
29 namespace Test_NUnit_Firebird
\r
33 public class Attach : TestBase
\r
36 public void Attach01()
\r
38 var db1 = CreateDB();
\r
39 var employee = new Employee();
\r
41 db1.Employees.Attach(employee);
\r
45 [ExpectedException(typeof(NotSupportedException))]
\r
46 public void Attach02()
\r
48 var db1 = CreateDB();
\r
49 var db2 = CreateDB();
\r
50 var employee = new Employee();
\r
52 db1.Employees.Attach(employee);
\r
54 // You can't attach the same object to multiple databases.
\r
55 db2.Employees.Attach(employee);
\r
58 [Test, ExpectedException(typeof(NotSupportedException))]
\r
59 public void Attach03()
\r
61 var db1 = CreateDB();
\r
62 var db2 = CreateDB();
\r
63 var employee = db1.Employees.First();
\r
64 db2.Employees.Attach(employee);
\r
68 public void AttachAll01()
\r
70 var db1 = CreateDB();
\r
71 var employees = new Employee[] { new Employee { EmployeeID = 20 }, new Employee { EmployeeID = 21 } };
\r
72 db1.Employees.AttachAll(employees);
\r
76 [ExpectedException(typeof(System.Data.Linq.DuplicateKeyException))]
\r
77 public void AttachAll02()
\r
79 var db1 = CreateDB();
\r
80 var employees = new Employee[] { new Employee { EmployeeID = 20 }, new Employee { EmployeeID = 20 } };
\r
81 db1.Employees.AttachAll(employees);
\r
86 [ExpectedException(typeof(System.Data.Linq.DuplicateKeyException))]
\r
87 public void AttachAll03()
\r
89 var db1 = CreateDB();
\r
90 var employee1 = db1.Employees.First();
\r
91 var employees = new Employee[] { new Employee { EmployeeID = employee1.EmployeeID } };
\r
92 db1.Employees.AttachAll(employees);
\r
96 [ExpectedException(typeof(ChangeConflictException))]
\r
97 public void NotExistingAttatch()
\r
99 Random rand = new Random();
\r
101 Northwind db = CreateDB();
\r
102 var orderDetail = new OrderDetail { OrderID = 0, ProductID = 0 };
\r
103 db.OrderDetails.Attach(orderDetail);
\r
105 float newDiscount = 15 + (float)rand.NextDouble();
\r
106 orderDetail.Discount = newDiscount;
\r
107 db.SubmitChanges();
\r