{“从实例化的'System.Guid'类型到'System.Int32'类型的指定转换无效。”

编程入门 行业动态 更新时间:2024-10-28 08:22:14
本文介绍了{“从实例化的'System.Guid'类型到'System.Int32'类型的指定转换无效。”的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述

我有一个包含单个资产表的实体框架模型,如下所示:

I have an Entity Framework Model which contains a single table of Assets as follows:

public partial class Asset { public int Switch { get; set; } public string Port { get; set; } public string Name { get; set; } public string Connection { get; set; } public string Interface { get; set; } public string ConnectionUser { get; set; } public string ConnectionDate { get; set; } }

我试图只返回名称列。这是我用来执行此操作的代码:

I am trying to only return the 'Name' column. This is the code I am using to do so:

// create the entity model for DB operations acls3Entities entities = new acls3Entities(); List<Asset> assets = entities.Assets.ToList(); foreach (Asset asset in assets) { Console.WriteLine(string.Format("{0}", asset.Name)); };

但是,这给了我这篇文章标题中定义资产行所引用的错误'。我该如何解决这个问题?

However it is giving me the error referenced in the title of this post at the line that defines 'assets'. How can I solve this issue?

推荐答案

GUID不是int,在您的数据库中,Switch是GUID。

The GUID is not an int, in your database, Switch is a GUID.

GUID是一个十六进制数字,除以-

A GUID is an hexadecimal number splited by -

以下是GUID的三个示例:

Here's three examples of GUID :

839E4FB1-F5F5-4C46-AFD1-000002CC625F

839E4FB1-F5F5-4C46-AFD1-000002CC625F

06F6D8BA-C10D-4806-B190-000006BA0513

06F6D8BA-C10D-4806-B190-000006BA0513

2D3343FD-3E8A-4B33-9198-00002031F5F8

2D3343FD-3E8A-4B33-9198-00002031F5F8

一个int不能包含字母,也不能包含-

An int cannot contains letters, neither can it contains -

所以您的资产更像是:

public partial class Asset { public Guid Switch { get; set; } // here <- GUID public string Port { get; set; } public string Name { get; set; } public string Connection { get; set; } public string Interface { get; set; } public string ConnectionUser { get; set; } public string ConnectionDate { get; set; } }

还要确保edmx文件始终是最新的您应该在遇到实体错误时进行检查。

Also make sure your edmx file is always up to date, this is something you should check whenever you encounter a bug with entity.

为此:

  • 在您的项目中找到您的.edmx文件(您可能称为acls3Entities.edmx)

  • Find your .edmx file in your project (yours is probably called acls3Entities.edmx)

    删除该页面内的所有内容……似乎蠕动一下?复制项目,然后再备份。

    Delete EVERYTHING inside that page... it seems frigthening a bit ? copy your project before doing so, this way you'll have a back up.

    右键单击空白处的某个位置,然后选择从数据库中更新或类似的内容(我的视觉工作室不是英语...)

    Right click somewhere in the white void, and choose Update from database or something that looks like that (my visual studio is not english... )

    选择每个表/查看/存储所需的过程,仅此而已

    Choose every table / view / stored procedure you need and that's all

  • 更多推荐

    {“从实例化的'System.Guid'类型到'System.Int32'类型的指定转换无效。”

    本文发布于:2023-05-31 12:03:28,感谢您对本站的认可!
    本文链接:https://www.elefans.com/category/jswz/34/391393.html
    版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
    本文标签:类型   实例   System   Guid

    发布评论

    评论列表 (有 0 条评论)
    草根站长

    >www.elefans.com

    编程频道|电子爱好者 - 技术资讯及电子产品介绍!