gpt4 book ai didi

entity-framework - 使用 Entity Framework 的动态数据...使用 [ScaffoldColumn(true)] 通过元数据显示公共(public)属性

转载 作者:行者123 更新时间:2023-12-04 07:24:07 24 4
gpt4 key购买 nike

... 它根本不起作用。我已经尝试了好几天,使用各种不同的 frick'n 东西组合,它不会让步。

肯定有一些人似乎在写博客来轻松解决这类问题,却没有看到一个问题,他们说“我们都知道您可以通过...显示扩展 EF 类的公共(public)属性”之类的话。和“如果你想扩展你的数据模型来显示一个计算字段,简单地......” - 对我来说不是那么简单 - arghghhhhghhhhhghh!!!

因此,根据所有典型示例,我的 EF 分部类如下所示:

[DisplayColumn("Name")]
[MetadataType(typeof(SaleProduct_Metadata))]
public partial class SaleProduct
{
public string Test
{
get
{
return "blah";
}
}

public class SaleProduct_Metadata
{
[ScaffoldColumn(true)]
public string Test;
}
}

我的 global.asax 看起来像这样:

        MetaModel model = new MetaModel();
model.RegisterContext(typeof(Sale.Models.SaleEntities), new ContextConfiguration() { ScaffoldAllTables = true });
routes.Add(new DynamicDataRoute("DD/{table}/{action}.aspx")
{
Constraints = new RouteValueDictionary(new { action = "List|Details|Edit|Insert" }),
Model = model
});

我的 List.aspx.cs 看起来像这样:

public partial class List : System.Web.UI.Page
{
protected MetaTable table;

protected void Page_Init(object sender, EventArgs e)
{
//DynamicDataManager1.RegisterControl(GridView1, true /*setSelectionFromUrl*/);
table = GridDataSource.GetTable();
DynamicDataManager1.RegisterControl(GridView1, true /*setSelectionFromUrl*/);
GridView1.ColumnsGenerator = new AdvancedFieldGenerator(table, true);
}

protected void Page_Load(object sender, EventArgs e)
{
table = GridDataSource.GetTable();
Title = table.DisplayName;
GridDataSource.Include = table.ForeignKeyColumnsNames;
InsertHyperLink.NavigateUrl = table.GetActionPath(PageAction.Insert);

// Disable various options if the table is readonly
if (table.IsReadOnly)
{
GridView1.Columns[0].Visible = false;
InsertHyperLink.Visible = false;
}
}

protected void OnFilterSelectedIndexChanged(object sender, EventArgs e)
{
GridView1.PageIndex = 0;
}
}

...我正在使用 Dynamic Data Futures 的一个版本来获得列排序、更好的验证等功能,这些功能运行良好。对(例如)List.aspx.cs(如上所示)进行了一些调整,并更改了日期格式,以便 NZ 样式日期在我的美国网络服务器上工作。除此之外,一切都很标准,AFAIK。

我的 EF 模型位于一个单独的程序集中,并且(显然)正在使用分部类扩展一些实体。我只想展示两个经过计算的血腥领域,但根本没有成功。我觉得我是一个用头撞砖墙的新程序员——老办法都不管用。编程不应该这么难:-(

有人,任何人,请帮忙!!

伯纳德。

最佳答案

我不确定,但如果您使用的是 EF 3.5 SP1...

这意味着您的类派生自 EntityObject,我怀疑动态数据是这种情况的特殊情况,并使用知道如何从ObjectContext,然后伪造必要的属性。

可能是问题的原因,因为 TypeDescriptionProvider 可能只使用 EF 知道的属性的元数据。这当然不包括您的计算属性。

我知道这不是一个“答案”,但希望它能为您指明正确的方向。

亚历克斯

关于entity-framework - 使用 Entity Framework 的动态数据...使用 [ScaffoldColumn(true)] 通过元数据显示公共(public)属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1180435/

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