gpt4 book ai didi

c# - ASP.NET 动态数据看不到部分元数据 "buddy"类

转载 作者:太空狗 更新时间:2023-10-29 21:35:42 25 4
gpt4 key购买 nike

我有一个 ASP.NET 4 动态数据网站,它针对一组相当简单的数据库表运行,这些表通过另一个程序集中的 Entity Framework 模型公开。我不想搭建 EF 模型中的所有 表,所以在我的 global.asax 文件中,我已经像这样初始化了默认模型:

DefaultModel.RegisterContext( typeof( MyCompany.MyProject.DataModel.DataContext ), new ContextConfiguration() { ScaffoldAllTables = false } );

MSDN 文档(以及 global.asax 文件中的注释)说我现在应该能够通过将 [ScaffoldTable(true)] 属性添加到它们来选择性地启用单个表的脚手架偏“哥们”类。我这样做是这样的:

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...
}
}
}

但是在加载 Default.aspx 时,我收到以下错误消息:

There are no accessible tables. Make sure that at least one data model is registered in Global.asax and scaffolding is enabled or implement custom pages.

我之前已经在类似的场景中使用过它;这次尝试的不同之处在于我的 EF 模型是它自己的程序集。如果我将 global.asax 更改为继续并搭建所有表,它工作正常。但显然,我不想要那样。我很小心地确保部分元数据类的命名空间与 EF 数据上下文的命名空间相匹配。

所以我很难过...

最佳答案

所以,我是个白痴:这不是 EF 或动态数据问题,而是 C# 约束。来自 MSDN :

All partial-type definitions meant to be parts of the same type must be defined in the same assembly and the same module (.exe or .dll file). Partial definitions cannot span multiple modules.

关于c# - ASP.NET 动态数据看不到部分元数据 "buddy"类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8765262/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com