无法投放类型&System; Int.322'键入' System.Object'。 LINQ to Entities

时间:2015-12-08 14:51:23

标签: asp.net-mvc entity-framework linq

我正在研究MVC和实体框架。我已经写了一个多记录删除功能。

模型是:

-(void)viewWillLayoutSubviews{
    [super viewWillLayoutSubviews];
    // Your layout logic here

    CGFloat availableLabelWidth = _mylabel.frame.size.width;
    _mylabel.preferredMaxLayoutWidth = availableLabelWidth;

    availableLabelWidth = _yourLable.frame.size.width;
    _yourLable.preferredMaxLayoutWidth = availableLabelWidth;
}

控制器是:

public partial class Category
    {
        public Category()
        {
            //this.Products = new HashSet<Product>();
        }

        public int CategoryID { get; set; }
        public string CategoryName { get; set; }
        public string Description { get; set; }
        public byte[] Picture { get; set; }

        public virtual ICollection<Product> Products { get; set; }
    }

出现错误,如

&#34;无法转换类型&System; Inc.3和#39;键入&#39; System.Object&#39;。 LINQ to Entities仅支持转换EDM原语或枚举类型。&#34;。

声明&#34; id.Equals(x.CategoryID))。ToList()&#34;是负责的错误。

如果我将其更改为 id.Contains(x.CategoryID))。ToList(),它工作正常。 我不想使用&#34; 包含&#34;因为它不会给出实际结果,例如如果我想删除记录号。 1它也将删除记录号。 11,111等。

感谢接受任何帮助。

帕塔

1 个答案:

答案 0 :(得分:1)

对于int数据类型,您必须使用==作为比较器。所以你的linq语句应该是-(NSInteger)numberOfSectionsInTableView:(UITableView *)tableView{ return 1; } - (BOOL)tableView:(UITableView *)tableView canEditRowAtIndexPath:(NSIndexPath *)indexPath { // Return YES if you want the specified item to be editable. return YES; } - (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath { if (editingStyle == UITableViewCellEditingStyleDelete) { //add code here for when you hit delete NSDictionary *dict = [_sourceData valueForKey:[NSString stringWithFormat:@"%li", indexPath.row]]; Connection *connection = [[Connection alloc] init]; [connection removeRowFromTable:@"sources" withRowID:[dict valueForKey:@"id"]]; [self loadData]; NSLog(@"%@", _sourceData); [_sourceTable reloadData]; } } //Delete Data Cell -(void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath { [cell setBackgroundColor:_cellBackgroundColor]; } -(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{ return [_sourceData count]; } -(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{ UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"CellIdentifier"]; if (cell == nil) { cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"CellIdentifier"]; NSDictionary *innerDict = [_sourceData valueForKey:[NSString stringWithFormat:@"%i", (int)indexPath.row]]; NSString *setText = [innerDict valueForKey:@"sourceName"]; UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(_leftMargin, cell.frame.size.height/2 - 7.5, 150, 15)]; label.textAlignment = NSTextAlignmentCenter; [label setFont:[UIFont systemFontOfSize:_cellTitleFontSize]]; [label setBackgroundColor:[UIColor clearColor]]; [label setTextColor:_cellTextColor]; [label setText:setText]; [label sizeToFit]; [cell addSubview:label]; } return cell; } //View Of cell -(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath{ return 50.0; }