小编Chr*_*ath的帖子

将多个表映射到实体框架中的单个实体类

在此之前被标记为重复,我已检查其他相关的帖子,他们不回答我的问题.

我正在处理一个遗留数据库,该数据库有2个具有1:1关系的表.目前,我为每个定义的表都有一个类型(1Test:1Result)我想将这些特定的表合并为一个类.

目前的类型看起来像这样

public class Result 
{
    public          string      Id                  { get; set; }
    public          string      Name                { get; set; }
    public          string      Text                { get; set; }
    public          string      Units               { get; set; }
    public          bool        OutOfRange          { get; set; }
    public          string      Status              { get; set; }
    public          string      Minimum             { get; set; }
    public          string      Maximum             { get; set; }

    public virtual  Instrument  InstrumentUsed      { get; set; }

    public virtual  Test        ForTest             { get; set; }
} …
Run Code Online (Sandbox Code Playgroud)

c# entity-framework c#-4.0 entity-framework-4.1 asp.net-mvc-3

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

在c#中扩展枚举

在java中我用来扩展枚举值或重写这样的方法:

    enum SomeEnum
    {

        option1("sv")
        {
            public String toString()
            {
                return "Some value";
            }     
        }, 
        option2;

        private String PassedValue;

        public SomeEnum(String somevalue)
        {
            this.PassedValue = somevalue;
        }

        public SomeEnum()
        {
                this.PassedValue = "Default Value";
        }

        public String getPassedValue()
        {
            return this.PassedValue;
        }

    }
Run Code Online (Sandbox Code Playgroud)

有没有办法在c#中做类似的事情,或者c#中的枚举更有限

c# enums

14
推荐指数
2
解决办法
4万
查看次数

intellisense中的自定义代码片段

我已经开始将一些常用的代码块导出到自定义代码段.有没有办法让这些显示在IntelliSense中,而不必使用上下文菜单或代码段管理器中的代码段浏览器?

起初,我认为这与ReSharper有关,但是当我禁用ReSharper IntelliSense时它们仍然没有出现.

能够只使用代码段快捷方式而不是使用浏览器会很高兴.

c# resharper visual-studio-2010 visual-studio code-snippets

9
推荐指数
2
解决办法
4699
查看次数

将应用程序部署到IIS后的分页意外结果(MVC3,EF 4.3)

我目前正在使用Entity Framework 4.3进行数据库访问的MVC 3网站上进行部署.

应用程序在Visual Studio开发服务器中按预期工作,但一旦将其部署到远程服务器,查询就会意外地做出反应

它应该显示已排序的列表和遍历该排序数据的页面

我已经尝试重新启动Web服务器和物理服务器计算机以确保缓存已经消失,甚至尝试在远程服务器上使用干净的IIS站点并获得相同的结果.

[编辑]:我也完成了删除并重新发布到一个干净的网站

论发展机器

开发机器

在远程服务器上

在此输入图像描述

我用来生成表的代码:

调节器

    [HttpGet]
    public virtual ActionResult Index(string filter = "", int? page = null)
    {

        page = page ?? 1;
        filter = filter.Trim().ToLower();
        int pageSize = Properties.Settings.Default.DefaultSPPageSize;



        int skipNum = (page.Value - 1) * pageSize;

        IQueryable<SamplePoint> spList;
        var points = new HashSet<string>(Settings.Default.SamplePointFilter.Split(','));


        if (filter != "")
            spList = db.SamplePoints.Where(e=> 
                        points.Any(p=> e.Id.StartsWith(p))
                     && e.Id.ToLower().Trim().StartsWith(filter.ToLower()))
            .OrderBy(o => o.Id);

        else
            spList = db.SamplePoints.Where(e =>
                        points.Any(p => e.Id.StartsWith(p))
                     && e.Id.Trim().StartsWith(filter)).OrderBy(o => o.Id);


        List<SamplePoint> …
Run Code Online (Sandbox Code Playgroud)

c# entity-framework windows-server-2008 iis-7.5 asp.net-mvc-3

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

Register-EventObject 在监听进程时不更新控制台

我目前正在编写进程包装器,我正在尝试将 stdout 和 stderr 通道重定向到 powershell 控制台

下面的代码是我用来调用我的进程的函数,但我似乎遇到的问题是我没有从事件处理程序获得任何输出来更新控制台

最后输出和 err 输出正常,但不会在发生时更新

function Invoke-Executable($ExePath, $ExeArgs)
{
        #Setup ProcessInfo
        $pinfo = New-Object System.Diagnostics.ProcessStartInfo
        $pinfo.FileName = $ExePath
        $pinfo.RedirectStandardError = $true
        $pinfo.RedirectStandardOutput = $true
        $pinfo.UseShellExecute = $false
        $pinfo.Arguments = $ExeArgs

        #Setup Process
        $process = New-Object System.Diagnostics.Process
        $process.StartInfo = $pinfo


        #Setup Error Listener
        $errEvent = Register-ObjectEvent -InputObj $process `
        -Event "ErrorDataReceived" `
        -Action `
        {
            param
            (
                [System.Object] $sender,
                [System.Diagnostics.DataReceivedEventArgs] $e
            )
            Write-Error $e.Data
        }

        #Setup Out Listener 
        $outEvent = Register-ObjectEvent -InputObj $process `
        -Event …
Run Code Online (Sandbox Code Playgroud)

powershell powershell-3.0 powershell-5.0

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

如何在模型重建后保留自定义导航属性?

我有几个从"用户"表到"报告"表的导航属性.生成的导航属性显然是这样访问的:

USER.REPORTs.Where(x => ...)
USER.REPORTs2.Where(x => ...)
USER.REPORTs3.Where(x => ...)
Run Code Online (Sandbox Code Playgroud)

第一个是用户createdId,第二个是UserApprovedId等......基本的东西.

这些很难解释.如果不访问EDMX并检查导航属性,很难分辨您正在导航的属性.

现在我知道我可以在属性管理器中创建自己的End1/End2导航属性,但是如果重新创建模型,这些属性就会丢失.

有没有解决的办法?

c# entity-framework edmx

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

从数据库中的字符串转换为布尔属性实体框架4.1

我正在使用遗留的oracle数据库,它在数据库中使用字符文字T和F作为其布尔值但是我希望Entity属性反映一个正确的boolen值是否有一个wy在模型绑定时转换此值是只读数据库,因此插入并不重要

.net c# entity-framework entity-framework-4.1 asp.net-mvc-3

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

将XAML存储在数据库糟糕的设计中?

例如,假设我正在编写一个允许用户设计自己的名片的应用程序,允许他们将可视对象添加到他们当前正在设计的"模板"中,这些对象中的每一个都绑定到用​​户的各个位置 - 数据.

例如.他们拖动一个"地址框",自动输入用户的地址,然后是"名称文本",它再次自动使用用户定义的名称.

这样做的原因是客户可以创建15个模板,所有模板都有自己的"外观",但是如果他们想要更改地址,他们只需要在一个地方修改它.

所有这些可视对象和模板本身都是用XAML编写的.我需要将这些用户创建的模板存储到数据库中,以便他们可以检索它们并在以后编辑它们.我看到它的方式,我有两个选择:

  1. 将整个模板作为XAML存储在名为"templates"的数据库表中,同时还包含ID和OwnerID.

  2. 为抽象类型的"可视对象"创建一个表.为每个具体类型的可视对象(即"AddressBox")创建一个表,该表将从抽象类型继承并具有每个用户可配置属性(字体大小,x/y坐标等)的字段.最后,创建一个名为template的表,它包含一组可视对象.

应该注意的是,我一直在使用实体框架来设计它,如果我在那里抛出了一些EF关键字,那么道歉!

就个人而言,目前XAML存储可能足以满足我们的要求,但是我所看到的一切似乎都表明这是将数据存储在数据库中的一种非常糟糕的方式.跳到这个35分钟:http://youtu.be/uFLRc6y_O3s是不是这正是他建议不要做?

使用XAML存储,我获得了属性值继承,这可能会使事情稍微容易一些,尽管我不确定用户是否会理解值如何"流"到链中.显然XAML也允许我存储我喜欢的任何属性值; 我不必先将它添加到数据库中.

缺点是,如果全部是XAML,我认为管理数据可能要困难得多; 最坏的情况可能需要检索每一块XAML,解析所有这些,找到我需要更改/查看的值,重新解析,保存更新后的XAML"blob".这显然会导致更大的读/写操作.

c# xaml database-design

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

将MVC DropDownlistFor()绑定到模型的Navigation属性

我正在为我的C#MVC课程编写一个简单的教程应用程序,我们的教授让我们使用会话和列表在内存系统中使用了一些可怕的神,因为他还没有开始教授实体框架

我遇到的问题是,当我试图将下拉列表绑定到我的模型时,它给了我一个意想不到的结果.

我在视图中使用的代码是:

<div class="editor-label">
    @Html.LabelFor(model => model.Author)
</div>
<div class="editor-field">
    @Html.DropDownListFor(m => m.Author, new SelectList(new Lab2Repository().GetAuthors(), "Id", "Name"), "---- Select Category ----")
    @Html.ValidationMessageFor(m=>m.Author)
</div>
<div class="editor-label">
    @Html.LabelFor(m=>m.Category)
</div>
<div class="editor-field">
    @Html.DropDownListFor(m => m.Category, new SelectList(new Lab2Repository().GetCategories(), "Id", "Name"), "---- Select Category ----")
    @Html.ValidationMessageFor(m => m.Category)

</div>
Run Code Online (Sandbox Code Playgroud)

当我运行该代码时,无论选择什么,它都会给出验证错误 在此输入图像描述

存储库代码:

using System;
using System.Linq;
using System.Collections.Generic;
using Int422.Lab2.Data;
using System.Web;
using Int422.Lab2.Models;


public class Lab2Repository
{
    public Lab2Context Data { get; set; }
    public Lab2Repository()
    {
        Data = (Lab2Context)HttpContext.Current.Application["State"];
    }

    #region …
Run Code Online (Sandbox Code Playgroud)

.net c# asp.net-mvc asp.net-mvc-4

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

在LINQ中深入查询2个级别的子集合

我目前有一个linq to entities模型设置如下

每个样本都有一个测试集合,每个测试都有一个结果集合每个结果都有一个Status属性,用于评估它是可用还是已完成

我将如何编写一个linq查询:获取具有可用结果的样本结果仅保留具有可用结果的测试,并且仅保留每个测试中可用的结果

无法解决这个问题,并帮助获得这个写真的帮助很多

类别:

public class Sample
{
    public Sample()
    {
        Tests = new List<Test>();
    }

    public          int                     Id              { get; set; }
    public          string                  IdText          { get; set; }
    public          DateTime                SampleDate      { get; set; }
    public          DateTime                LoginDate       { get; set; }
    public          string                  Container       { get; set; }
    public          string                  Product         { get; set; }
    public          string                  Name            { get; set; }
    public          string                  Status          { get; set; }

    public virtual  SamplePoint SamplingPoint { …
Run Code Online (Sandbox Code Playgroud)

.net c# linq linq-to-entities asp.net-mvc-3

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

强类型List.GroupBy()

我一直试图在谷歌和SO上找到答案

但我发现的所有地方都使用匿名类型的结果列表

我想要实现的是采取一个 List<SecondaryStandard>

并创建一个分组列表 SecondaryStandard

每个都SecondaryStandard看起来像这样

public class SecondaryStandard
{

    public string Id { get; set; }
    public int IdNumeric { get; set; }
    public string IdText { get; set; }
    public Sample Sample { get; set; }
    public string StandardName { get; set; }
    public DateTime DateCompleted { get; set; }
    public SamplePoint SamplingPoint{ get; set; }
    public Instrument Instrument{ get; set; }
    public string ContainerId { get; set; }
    public double Value { get; set; …
Run Code Online (Sandbox Code Playgroud)

c# linq group-by

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

Swagger.net - 如何在xml注释中指定UI注释

我刚开始第一次使用swagger,似乎无法弄清楚如何通过Xml Documention注释获得实现说明来显示任何内容.

我已经搜索了几个小时的文档而没有看到如何填充json输出中的特定字段.

我希望动态完成此操作,并且不希望为此数据创建静态json文件是否有指导哪些字段以获取特定输出的教程或其他文档.

还有一种方法是根据UI输出中的动作方法的输入模型显示样本json请求,而无需手动显示这些

编辑:

我遇到的另一个问题是,如果我有一个简单的get方法标记为Authorize Swagger UI完全中断,当我尝试将Authorize标头(我使用Bearer标记)添加到javascript api中的headers选项时授权令牌永远不会被发送代码是一个跟随

        $(function () {
        window.swaggerUi = new SwaggerUi({
            discoveryUrl: "/api/swagger",
            dom_id: "swagger-ui-container",
            docExpansion: 'list',
            headers: { "Authorization":"Bearer Y2xtY2dyYXRoX2ZhY19jcmRJQ1RHV1MuQ29vcmRpbmF0b3IsRmFjdWx0eS42RC1BMi02Mi03Mi00Qi00Mg=="},
            supportHeaderParams: true,
            supportedSubmitMethods: ['get', 'post', 'put', 'delete']

        });


        window.swaggerUi.load();

    });
Run Code Online (Sandbox Code Playgroud)

当我在我的消息处理程序中收到请求时,authHeader为null并且在headers集合中根本不存在,并且持有者令牌已经工作正常,直到现在使用Fiddler在swagger api中有什么东西我需要做某事我失踪了,我已经按照文件几乎完全按照文件和上面的功能工作正常除了身份验证,我无法弄清楚如何填充实施说明

.net asp.net-mvc-4 asp.net-web-api swagger

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