小编Jos*_*ero的帖子

Asp.Net Core 2.0 - 检索图像URL

我正在尝试创建一个公开一些数据的休息服务,一切都很好,直到我意识到从服务器公开图像完整URL很痛苦.也许这只是我,但我发现它非常复杂.

只是为了在上下文中,我使用Entity Framework从我的数据库中读取,这是我正在使用的表:

在此输入图像描述

正如你所看到的,有一个名为"ImagePath"的字段,坏名字,它应该是"ImageName",无论如何,该列保存了代表该Champion对象的图像的确切文件名,所有图像当前都位于在wwwroot项目文件夹中,就像这样:

在此输入图像描述

所有业务逻辑都不在控制器中,位于常规类的服务文件夹/层中(也许这不相关,但我只是想澄清一点,我不在任何控制器内工作):

在此输入图像描述

这是我期待魔术发生的方法:

public async Task<IList<Champion>> GetChampions()
{
   List<Champion> champions = await _context.Champion
   .Include(x => x.PrimaryClass)
   .Include(x => x.SecondaryClass)
   .Include(x => x.ChampionUserRate)
   .ToListAsync();

   //BEFORE RETURNING THE CHAMPION TO THE CONTROLLER, I WILL NEED TO CONCATENATE MY CURRENT SERVER URL AND THE PATH TO THE IMAGE PLUS THE IMAGE NAME FILE WHICH IS ALREADY IN THE DATABASE AND ALREADY MATCHES THE IMAGES FOLDER

   string serverPathToChampionsFolder = null; //Example: http://localhost:57435/wwwroot/Champions

   foreach (var champion in champions)
   {
       champion.ImagePath = serverPathToChampionsFolder …
Run Code Online (Sandbox Code Playgroud)

c# .net-core asp.net-core

9
推荐指数
1
解决办法
7074
查看次数

如何仅使用数据库中的Entity Framework Scaffolded Models

我一直在使用.Net Core Entity Framework数据库第一种方法和Scaffolding技术.

它从我的数据库表中生成了几个模型/类,但是现在,我将最小化我对这两个表的问题...在两个ChampionID列上的一对多关系:

在此输入图像描述

因此,在使用EntityCore Tools对模型进行脚手架/映射之后,它会生成以下两个类(以及其他几个不相关的类):

Champion.cs:

public partial class Champion
{
    public Champion()
    {
        ChampionScreenshot = new HashSet<ChampionScreenshot>();
        ChampionUser = new HashSet<ChampionUser>();
        ChampionUserRate = new HashSet<ChampionUserRate>();
    }

    public int ChampionId { get; set; }
    public string Name { get; set; }
    public string Nickname { get; set; }
    public string Description { get; set; }
    public string ImagePath { get; set; }
    public byte AttackDamageScore { get; set; }
    public byte AbilityPowerScore { get; set; }
    public byte …
Run Code Online (Sandbox Code Playgroud)

c# entity-framework-core .net-core asp.net-core

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