Başka bir derlemede bir Entity Framework modeliyle karşılaşılan oldukça basit bir veritabanı tabloları kümesine karşı çalışan bir ASP.NET 4 Dinamik Veri web sitem var. Ben EF modelinde tabloları tüm darağacına istemiyoruz, bu yüzden benim Global.asax dosyasında, böyle varsayılan modeli başlatıldı ettik:ASP.NET Dinamik Veriler kısmi meta veriler "buddy" sınıfı görmüyor
DefaultModel.RegisterContext(typeof(MyCompany.MyProject.DataModel.DataContext), new ContextConfiguration() { ScaffoldAllTables = false });
MSDN dokümanlar (ve global.asax dosyasındaki yorumlar, kısmi "dostum" sınıfına [ScaffoldTable(true)]
özniteliğini ekleyerek bağımsız tabloların iskeletini seçici olarak etkinleştirebilmem gerektiğini söylüyor. Böyle Bunu yaptıktan:
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...
}
}
}
Ama default.aspx yüklerken, aşağıdaki hata iletisini alabilirsiniz: Hiçbir erişilebilir tablolar vardır
. Global.asax'da en az bir adet veri modeli 'un kayıtlı olduğundan ve iskele etkinleştirildiğinden veya özel sayfalarının uygulandığından emin olun.
Daha önce benzer senaryolarda çalışmak için bunu aldım; Bu girişimden farklı olan tek şey, EF modelimin kendi montajı olması. Global.asax'ı değiştirip tüm tabloları devam ettirmek için değiştirirseniz, iyi çalışır. Ama açıkçası bunu istemiyorum. Kısmi meta veri sınıfının ad alanının EF veri içeriğinin ad alanıyla eşleştiğinden emin olmak için dikkatliyim.
using System.ComponentModel;
using System.ComponentModel.DataAnnotations;
using System.Web.DynamicData;
namespace MyCompany.MyProject.DataModel
{
[MetadataType(typeof(InHouseClaimMetadata))]
[ScaffoldTable(true)]
public partial class InHouseClaim
{
public class InHouseClaimMetadata
{
}
}
}
: Ben senin senaryoyu yeniden oluşturmak için çalıştı ve yerine aşağıdaki kodu kullanarak test ettik mülkiyet mappging kullanmanın ettik
Bu adam benim önümdeydi: http://stackoverflow.com/questions/647385/is-it-possible-to- iki-kısmi-sınıfları-farklı-meclis-temsil-var –