Theo như tôi biết, rowversion là một giá trị nhị phân tương đối, không phải là giá trị thời gian thực. Nó tăng cho mỗi chèn và cập nhật xảy ra. Điều này cho phép bạn so sánh các giá trị để xác định bản ghi nào mới hơn. Vì nó là tương đối, được đưa ra một giá trị chuyển đổi hàng duy nhất, bạn sẽ không biết gì cả, nhưng với hai giá trị hàng tuần, bạn sẽ biết cái nào cũ hơn và mới hơn, nhưng không biết bao nhiêu.
Tôi không biết loại dữ liệu .Net nào liên kết với chúng để chúng trở thành Dấu thời gian hoặc RowVersion trong cơ sở dữ liệu khi được tạo.
Tôi không chắc chắn, nhưng nhiều khả năng không có kiểu dữ liệu nào cung cấp cho bạn hàng lỗi khi chuyển từ mô hình sang cơ sở dữ liệu. Bạn sẽ phải tự thay đổi loại trường cơ sở dữ liệu hoặc thêm trường vào DB và mang bản ghi lên đến mô hình của bạn. Bạn cũng có thể tạo DDL và sau đó sửa đổi nó trước khi tạo DB với nó.
Ngoài ra còn có một phương pháp khác để bạn có thể mở rộng chức năng của quy trình EF bằng cách bắt nguồn từ các lớp của nó. Sau đó bạn có thể tự mình chọn, nhưng tôi không quá quen thuộc với cách làm điều đó.
Nguồn
2011-04-19 16:59:25
Khi bạn đi theo con đường khác (DB -> mô hình) loại là 'byte [] '(trong mã) và "Nhị phân" (trong EDMX). –
@Craig - khi bạn tạo lại DB từ mô hình, cột dấu thời gian biến thành cột nhị phân và bạn mất hành vi mà tôi đang tìm kiếm. –
Để rõ ràng, SQL Server 'TIMESTAMP' không phải là thời gian. Đó là những gì bạn muốn, hoặc bạn muốn có một thời gian? Tôi đã giả sử bạn muốn có một 'TIMESTAMP', đó thực sự là nhị phân. –