小编The*_*nks的帖子

实体框架核心2.0:如何配置一次抽象基类

我有一个基本模型:

public abstract class Status
{
     public string updateUserName { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

然后是扩展上面定义的基本模型的模型:

public class Item : Status
{
     public int Id { get; set; }
     public string Description { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

然后我为每个定义了配置类:

public class ItemConfiguration : IEntityTypeConfiguration<Item>
{
    public void Configure(EntityTypeBuilder<Item> builder)
    {
        builder.ToTable("Item", "dbo").HasKey(c => c.Id);
        builder.Property(c => c.Description).IsRequired().HasMaxLength(100);
    }
}

public class StatusConfiguration : IEntityTypeConfiguration<Status>
{
    public void Configure(EntityTypeBuilder<Status> builder)
    {
        builder.Property(c => c.updateUserName).IsRequired().HasMaxLength(50);
    }
Run Code Online (Sandbox Code Playgroud)

现在,我有以下Context类:

public class TestDbContext : DbContext
{
    public …
Run Code Online (Sandbox Code Playgroud)

sql-server ef-code-first entity-framework-core ef-fluent-api asp.net-core-2.0

10
推荐指数
1
解决办法
5287
查看次数

不返回任何数据的 SSRS 2008 R2 子报表将不会显示

使用这个网站多年,但第一次发布问题...

我有一个父报告,其中包含多个子报告(出于测试目的,所有报告都是同一份报告)。子报表包含一个 tablix 和一些作为标题/标题(但在正文中)的独立文本框。

我遇到的问题是,当任何子报告不返回数据(空)时,该子报告(tablix 或文本框)都不会在父报告中呈现。无论如何,我想让孩子的文本框在父母中呈现。

我有点困惑,因为我认为默认行为是显示子报告中的所有内容,但在 tablix 中没有任何条目(或至少显示文本框)。

现在对于我测试过的:

-如果有来自子报表查询的数据,则没有问题,一切都显示正确。

- 添加 NoRowsMessage 将显示但没有来自子报告的其他内容(特别是查找文本框)

- 在所有子报表都没有返回数据的情况下运行父报表时,可以在第一页上显示的子报表将正确显示,但在查看以下页面时,它们将全部为空白(除非设置了 NoRowsMessage)。此外,当离开第一页并试图回到它时,它会像其他页面一样变得空白。

- 想可能是我遗漏了一些小设置,并决定重新创建没有解决问题的父报告。

笔记:

- 子报告没有边距和标准字母大小,而父级也有标准字母大小和 0.5 的边距,除了左边的边距为 1(不要认为这是问题所在) )。

- 子报表包含 2 个参数,一个是内部数据集,另一个是共享数据集。

- 在重新创建时,我只更改了分页符设置,它仍然无法正确显示。

- 子报告独立运行良好

我花了一整天的时间来研究报告,但一直没能找到问题所在,我想也许有更多经验的其他人可以提供建议。发现了很多关于如何在没有数据输入的情况下隐藏这些子报告的问题,但没有显示它。

任何有关困境的指导或子报告如何在不更改任何默认设置的情况下呈现,将不胜感激!鼓励任何后续问题。谢谢!

ssrs-2008-r2

3
推荐指数
1
解决办法
3007
查看次数

在应用程序的数据库存储过程中使用 MSDB 存储过程

这似乎是微不足道的,但我一直无法想出解决这个小问题的方法。

我试图在我的应用程序的数据库中创建一个存储过程。这个存储过程只是执行在同一台服务器上的 SSMS 中设置的作业(似乎是以编程方式执行这些作业的唯一方法)。

简单的代码如下所示:

USE ApplicationsDatabase
GO
CREATE PROCEDURE [dbo].[procedure]
AS
BEGIN
    EXEC dbo.sp_start_job N'Nightly Download'
END
Run Code Online (Sandbox Code Playgroud)

按原样运行时,该过程在技术上已创建但无法执行,因为它无法找到“sp_start_job”,因为它正在使用 ApplicationsDatabase。如果我尝试再次创建该过程(在删除之前创建的之后)但将 USE 更新为 MSDB,它会尝试将其添加到我无权执行的系统数据库中。最后,我试图保留原始的 create 语句,但在过程中添加了 USE MSDB(只是为了使用“sp_start_job”过程),但它会错误地说 USE 语句不能放置在过程中。

想了想(我明明不是SQL数据库专家),想不出解决办法,决定请教各位同行。任何帮助将不胜感激,谢谢!

sql sql-server sql-server-2008-r2

2
推荐指数
1
解决办法
1042
查看次数