2009-04-14 5 views

Trả lời

6

Khung thực thể trả về nội dung cột XML (đã nhập hoặc không) thành chuỗi để không thể tạo đối tượng từ nội dung tài liệu xml (nút của nó) ... nếu bạn vẫn tò mò đọc bài viết này, giải pháp cho vấn đề của bạn .. tôi đã không thử nó mặc dù (link text)

để trả lời câu hỏi cuối cùng của Marc .. những gì tôi mong đợi trong phiên bản tiếp theo của EF là khả năng ánh xạ nội dung tài liệu xml dưới dạng thực thể, như nó làm với các bảng bình thường và các mối quan hệ giữa chúng .. hoặc ít nhất là để tạo các phần của tài liệu xml như các thuộc tính trong các thực thể ..

2

Đây là những gì tôi đang làm bây giờ, tôi đang thêm một phương thức vào một phần phù hợp với mô hình của tôi có thuộc tính .Data dưới dạng một chuỗi.

Về bản chất bạn có thể hiện cuộc gọi.UseData ((dữ liệu) => {...});

Từ đó trong biểu thức lambda bạn có thể đọc/thao tác dữ liệu và nó lưu lại trường gốc cho cơ sở dữ liệu ... Tôi rất muốn chỉ có thể tạo thuộc tính cho điều này, được ràng buộc với sự kiện để cập nhật trường liên quan.

Tôi đang đẩy cấu trúc động hơn vào trường Dữ liệu dưới dạng XML ... điều này tự nhiên hơn trong VB.Net là C# .. nếu dự án của tôi ở C# tôi có thể nghiêng để ủng hộ JSON ...

C#

public void UseData(Action editor) 
{ 
    var def = XElement.Parse(""); 
    XElement data; 
    try 
    { 
     if (String.IsNullOrWhiteSpace(this.Data)) 
     { 
      data = def; 
     } 
     else 
     { 
      data = XElement.Parse(this.Data); 
     } 
    } 
    catch (Exception ex) 
    { 
     data = def; 
    } 
    editor(data); 
    this.Data = data.ToString(); 
}

VB.Net

Public Sub UseData(editor As Action(Of XElement)) 
    Dim def = 
    Dim data As XElement 
    Try 
     If String.IsNullOrWhiteSpace(Me.Data) Then 
      data = def 
     Else 
      data = XElement.Parse(Me.Data) 
     End If 
    Catch ex As Exception 
     data = def 
    End Try 
    editor(data) 
    Me.Data = data.ToString() 
End Sub