Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/svn/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# linqTOsql返回一个";“指定的强制转换无效”;运行时异常_C#_Asp.net_Sql Server_Asp.net Mvc_Linq To Sql - Fatal编程技术网

C# linqTOsql返回一个";“指定的强制转换无效”;运行时异常

C# linqTOsql返回一个";“指定的强制转换无效”;运行时异常,c#,asp.net,sql-server,asp.net-mvc,linq-to-sql,C#,Asp.net,Sql Server,Asp.net Mvc,Linq To Sql,我有两个linqTOsql实体,它们具有一对多的父子关系。我遇到了一个问题,当我检索父记录时,我无法循环子表中的相关记录 此代码失败: public string test() { string output; StreamEntry entry = genesisRepository.StreamEntries.FirstOrDefault(x => x.seID == 6); output = entry.seUrl.

我有两个linqTOsql实体,它们具有一对多的父子关系。我遇到了一个问题,当我检索父记录时,我无法循环子表中的相关记录

此代码失败:

    public string test()
    { 
        string output;
        StreamEntry entry = genesisRepository.StreamEntries.FirstOrDefault(x => x.seID == 6);

        output = entry.seUrl.ToString() + "<br />";
        foreach(var item in entry.FieldInstance)
        {

            output = "<ul>";
            output += "<li>" + item.fiLabel.ToString() + "</li>";
            output = "</ul>";
        }
        return output;
    }
儿童:

[Table]
public class FieldInstance
{
    [Column(IsPrimaryKey = true, IsDbGenerated = true, AutoSync = AutoSync.OnInsert)]
    public long fiID { get; set; }

   /* Other field removed for brevity */ 

    [Column]
    public long fiStreamEntryID { get; set; }  // FK

    // Relationship (many FieldInstances to one StreamEntry)
    // using EntityRef<StreamEntry> and ThisKey
    // which is "This" table's FK
    private EntityRef<StreamEntry> _StreamEntry;
    [System.Data.Linq.Mapping.Association(Storage = "_StreamEntry", ThisKey = "fiStreamEntryID")]
    public StreamEntry StreamEntry
    {
        get { return this._StreamEntry.Entity; }
        set { this._StreamEntry.Entity = value; }
    }
}
[表格]
公共类字段实例
{
[列(IsPrimaryKey=true,IsDbGenerated=true,AutoSync=AutoSync.OnInsert)]
公共长fiID{get;set;}
/*为简洁起见,删除了其他字段*/
[专栏]
public long-fistreameryId{get;set;}//FK
//关系(多个FieldInstance到一个StreamEntry)
//使用EntityRef和ThisKey
//哪个是“此”表的FK
私人实体ref_StreamEntry;
[System.Data.Linq.Mapping.Association(Storage=“\u StreamEntry”,ThisKey=“fiStreamEntryID”)]
公共流媒体中心流媒体中心
{
获取{返回此。\u StreamEntry.Entity;}
设置{this.\u StreamEntry.Entity=value;}
}
}
是什么导致了我的强制转换异常

编辑-添加表定义 StreamEntry表:

seID bigint notnull

seUrl nvarchar(255)notnull

seHeadline nvarchar(255)notnull

seBody ntext可为空

seDescription nvarchar(255)可为空

SENVARCHAR(255)可为空

seTitle nvarchar(255)可为空

seOrder bigint notnull

已创建日期时间notnull

已修改日期时间notnull

StreamID bigint notnull

AllowComents位不为空

FieldInstance表:

ftID bigint notnull

ftIsRequired位notnull

ftLabel nvarchar(50)不为空

ftStrValue nvarchar(1000)可为空

ftDateTimeValue日期时间可为空

ftIntValue int可为空

ftDecValue十进制(18,0)可为空

ftOrder bigint notnull

ftStreamEntryID bigint notnull---FK到StreamEntry表

ftFieldTypeID bigint notbull

编辑-添加了StreamEntry记录 此代码:

   public string test()
    { 
        string output;
        StreamEntry entry = genesisRepository.StreamEntries.FirstOrDefault(x => x.seID == 6);

        output = entry.seID.ToString() + "<br />";
        output += entry.seUrl + "<br />";
        output += entry.seHeadline + "<br />";
        output += entry.seBody + "<br />";
        output += entry.seDescription + "<br />";
        output += entry.seKeywords + "<br />";
        output += entry.seTitle + "<br />";
        output += entry.seOrder.ToString() + "<br />";
        output += entry.seDateCreated.ToString() + "<br />";
        output += entry.seDateModified.ToString() + "<br />";
        output += entry.StreamID.ToString() + "<br />";
        output += entry.AllowComments.ToString() + "<br />";

        return output;
    }
公共字符串测试()
{ 
字符串输出;
StreamEntry条目=genesRepository.StreamEntries.FirstOrDefault(x=>x.seID==6);
output=entry.seID.ToString()+“
”; 输出+=entry.seUrl+“
”; 输出+=entry.seHeadline+“
”; 输出+=entry.seBody+“
”; 输出+=entry.seDescription+“
”; 输出+=entry.seKeywords+“
”; 输出+=entry.seTitle+“
”; output+=entry.seOrder.ToString()+“
”; output+=entry.statisteCreated.ToString()+“
”; output+=entry.statistemodified.ToString()+“
”; output+=entry.StreamID.ToString()+“
”; output+=entry.AllowComments.ToString()+“
”; 返回输出; }
返回:

六,

自闭症

自闭症

>

>

>

>

0

2010-11-16下午4:10:45

2010-11-16下午4:10:45

七十五

假的


是否有可能在不更新DBML的情况下更新了基础数据库中的列类型?

@Abe-no。它被设置为不可为null、bigint、自动增量标识。您还可以添加表定义吗?是否可以发布为
StreamEntry entry=.返回的记录您的目标是.NET的哪个版本?@Anders-将编辑表格定义的问题否。我在问题中发布了我的
StreamEntry
和FieldInstance`表定义。类型匹配。Doggonit--我想我可能找到了。在我尝试重新编译的一秒钟内,我没有DBML。。我只是使用类定义我的表。。。但我有两个字段设置为int,应该是长的,反之亦然
[Table]
public class FieldInstance
{
    [Column(IsPrimaryKey = true, IsDbGenerated = true, AutoSync = AutoSync.OnInsert)]
    public long fiID { get; set; }

   /* Other field removed for brevity */ 

    [Column]
    public long fiStreamEntryID { get; set; }  // FK

    // Relationship (many FieldInstances to one StreamEntry)
    // using EntityRef<StreamEntry> and ThisKey
    // which is "This" table's FK
    private EntityRef<StreamEntry> _StreamEntry;
    [System.Data.Linq.Mapping.Association(Storage = "_StreamEntry", ThisKey = "fiStreamEntryID")]
    public StreamEntry StreamEntry
    {
        get { return this._StreamEntry.Entity; }
        set { this._StreamEntry.Entity = value; }
    }
}
   public string test()
    { 
        string output;
        StreamEntry entry = genesisRepository.StreamEntries.FirstOrDefault(x => x.seID == 6);

        output = entry.seID.ToString() + "<br />";
        output += entry.seUrl + "<br />";
        output += entry.seHeadline + "<br />";
        output += entry.seBody + "<br />";
        output += entry.seDescription + "<br />";
        output += entry.seKeywords + "<br />";
        output += entry.seTitle + "<br />";
        output += entry.seOrder.ToString() + "<br />";
        output += entry.seDateCreated.ToString() + "<br />";
        output += entry.seDateModified.ToString() + "<br />";
        output += entry.StreamID.ToString() + "<br />";
        output += entry.AllowComments.ToString() + "<br />";

        return output;
    }