Tôi có một trang web ASP.NET 4 Dynamic Data đang chạy với một bộ bảng cơ sở dữ liệu khá đơn giản, được hiển thị thông qua một mô hình Entity Framework trong một assembly khác. Tôi không muốn để giàn giáo tất cả của các bảng trong mô hình EF, vì vậy trong file Global.asax của tôi, tôi đã khởi tạo mô hình mặc định như thế này:ASP.NET Dynamic Data không nhìn thấy một phần siêu dữ liệu "buddy" class
DefaultModel.RegisterContext(typeof(MyCompany.MyProject.DataModel.DataContext), new ContextConfiguration() { ScaffoldAllTables = false });
Các tài liệu MSDN (và các ý kiến trong tập tin global.asax) nói rằng bây giờ tôi có thể chọn lọc cho phép giàn giáo của các bảng riêng lẻ bằng cách thêm thuộc tính [ScaffoldTable(true)]
vào lớp "bạn thân" của chúng. Tôi đã làm như vậy như thế này:
using System.ComponentModel;
using System.ComponentModel.DataAnnotations;
using System.Web.DynamicData;
namespace MyCompany.MyProject.DataModel
{
[MetadataType(typeof(InHouseClaimMetadata))]
[ScaffoldTable(true)]
public partial class InHouseClaim
{
[DisplayName("In-House Claims")]
[TableName("In-House Claims")]
public class InHouseClaimMetadata
{
[DisplayName("Reporting Date")]
public object ReportingDate { get; set; }
// etc etc...
}
}
}
Nhưng khi tải Default.aspx, tôi nhận được thông báo lỗi sau:
Không có bảng truy cập. Đảm bảo rằng ít nhất một mô hình dữ liệu được đăng ký trong Global.asax và giàn giáo được bật hoặc triển khai các trang tùy chỉnh.
Tôi đã làm việc này trong các tình huống tương tự trước đây; một điều khác biệt về nỗ lực này là mô hình EF của tôi là hội đồng của riêng mình. Nếu tôi thay đổi global.asax để đi trước và giàn giáo tất cả các bảng, nó hoạt động tốt. Nhưng rõ ràng, tôi không muốn điều đó. Tôi đã cẩn thận để đảm bảo rằng không gian tên cho lớp siêu dữ liệu một phần khớp với không gian tên của ngữ cảnh dữ liệu EF.
Vì vậy, tôi bối rối ...
Anh chàng này đã đi trước tôi: http://stackoverflow.com/questions/647385/is-it-possible-to- có hai phần-lớp-trong-khác nhau-hội-đại diện- –