Sqlserver
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Sqlserver

LINQ-to-SQL có thể bỏ qua các cột không xác định khi chèn để sử dụng giá trị mặc định của cơ sở dữ liệu không?

Thật không may, Linq to SQL không hỗ trợ các giá trị mặc định của cơ sở dữ liệu. Xem câu hỏi đầu tiên tại đây:

http:// social.msdn.microsoft.com/forums/en-US/linqprojectgeneral/thread/3ae5e457-099e-4d13-9a8b-df3ed4ba0bab/

Những gì họ đề xuất là bạn cung cấp triển khai phương thức Chèn cho thực thể được đề cập. Chữ ký là

partial void Insert[EntityName](Entity instance)

Vì vậy, nếu bạn có một thực thể được gọi là Person, mà bạn muốn có giá trị mặc định là "Home" cho trường PhoneNumberDesc, bạn có thể triển khai nó theo cách này:

    partial void InsertPerson(Person instance)
    {
        if (string.IsNullOrEmpty(instance.PhoneNumberDesc))
            instance.PhoneNumberDesc = "Home";

        var insertParams = new List<object>();
        var insertStatement = "insert into ...";

        // build the rest of the insert statement and fill in the parameter values here...

        this.ExecuteQuery(typeof(Person), insertStatement, insertParams.ToArray());
    }

Bạn có thể thoát khỏi việc triển khai sự kiện OnCreate, sự kiện này được gọi với mỗi phương thức khởi tạo cho mỗi thực thể. Bài viết này giải thích một chút về cách các điểm khả năng mở rộng trong Linq To SQL: http://msdn.microsoft.com/en-us/library/bb882671.aspx

Nói chung, giải pháp thực sự rất tệ. Chúc các bạn thành công!



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Sắp xếp ngẫu nhiên máy chủ SQL

  2. DevOps:DBA hoặc Developer - Cân bằng chính xác

  3. Phương pháp tốt nhất để truyền các tham số cho SQLCommand là gì?

  4. Bộ lọc SQL tiêu chí trong tiêu chí nối hoặc mệnh đề where hiệu quả hơn

  5. xảy ra lỗi khi thiết lập kết nối với SQL Server