2016-04-29 8 views
0

数値がデータベースに挿入されている場合、値を取得したい。私は最後の関数を使用しましたが、それはうまくいきませんでしたとエラーが返さ:これは私のクラスLigneCommandeあるLINQ asp.net mvcを使用してテーブルのプロパティの最後の値を取得

int NumD = LigneCommande.Last().NumDocument; 

last not defined by LINQ TO ENTITIES.

これは私が使用したコードがある

public partial class LigneCommande 
{ 


    [Key] 
    [Column(Order = 0)] 
    [DatabaseGenerated(DatabaseGeneratedOption.None)] 
    public int NumDocument { get; set; } 

    [Key] 
    [Column(Order = 1)] 
    [DatabaseGenerated(DatabaseGeneratedOption.None)] 
    public int NumLigne { get; set; } 

    [Required] 
    [StringLength(20)] 
    public string CodeArticle { get; set; } 

    public int Quantite { get; set; } 

    public int Disponible { get; set; } 

    public decimal PrixUnitaire { get; set; } 

    public byte Existe { get; set; } 

    [Required] 
    [StringLength(50)] 
    public string Designation { get; set; } 

    public byte Commander { get; set; } 

    [Required] 
    [StringLength(50)] 
    public string Nature { get; set; } 

    public DateTime DateDisponibilite { get; set; } 

    [Required] 
    [StringLength(50)] 
    public string commentaire { get; set; } 

    [Required] 
    [StringLength(20)] 
    public string numFacture { get; set; } 

    public decimal? Remise { get; set; } 

    public decimal? QteANNULEE { get; set; } 

    public int? statusAnnulee { get; set; } 

    [Column("Relicat Qte")] 
    public decimal? Relicat_Qte { get; set; } 
} 

First()に変更しようとしましたが、正常に動作します。誰か助けてくれますか?

答えて

3

オープンエンドのデータソースには、実際には「最後」の概念はありません。たとえば、SQLにはBOTTOM 1レコードを取得する構文はないことに注意してください。ちょうどTOP 1です。

ただし、降順で並べ替えると「最初の」機能が動作します。逆の順序でそれらを注文し、「最初の」取ることによって、あなたの「最後」のオブジェクトを与えるだろう

int NumD = LigneCommande.OrderByDescending(l => l.SomeProperty).First().NumDocument; 

:このような何か。あなたがする必要があるのは、その注文が何であるかを定義することだけです。

+0

NumD = dbsを試してみてください。 LigneCommande.First()。NumDocumentは動作しますが、試してみると:int NumD = dbs.LigneCommande.OrderByDescending(l => l.SomeProperty).First()。NumDocument;このエラーが発生する:モデルを作成するときにコンテキストを使用できない – Sarra

+0

@Sarra:エラーメッセージが表示されますか? Googleはあなたがそのエラーを受け取った唯一の人であることを示唆しているようです... – David

+0

それは今仕事です、助けてくれてありがとう:) @Davidあなたのソリューションの仕事、感謝 – Sarra

1

LigneCommandeと定義されていない限り、誰もこれに答えることはできません。このコードが動作するのを見ることができる唯一の方法はID LigneCommandeです。これはIEnumerable<int>またはint[]のようなものでした。おそらく、次のようなものです:

int NumD = LigneCommande.Select(x => x.MyColumnNameThatIsAInt).LastOrDefault(); 
+0

あなたのコードを試しましたが、同じエラーが発生しました。 – Sarra

+0

@Scott Selbyさん、ありがとうございました – Sarra

-1

int NumD = LigneCommande.AsEnumerable()。LastOrDefault();

+0

NumD = dbsを試してみてください。 igneCommande.First()。NumDocumentは動作しますが、試してみると: – Sarra

関連する問題