Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.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
Database 要求我的功能是实现对数据库的访问_Database_Linq_Entity Framework 6 - Fatal编程技术网

Database 要求我的功能是实现对数据库的访问

Database 要求我的功能是实现对数据库的访问,database,linq,entity-framework-6,Database,Linq,Entity Framework 6,要求实现我的功能以访问数据库,并执行某些操作。 例如: 1) 检查或阅读信息。 2) 按日期检查和发布用户之间的所有通信。 3) 查找所有用户的最新帖子。 但是我认为教程中有一些内容我不知道怎么做。我能给你看的一切。因此,我想请你们看看我的代码,看看上面有什么,并帮助我。您不需要完全编写代码。如果你不难放下袖子冷静地给出例子,让我在LINQ和EntityFramework上写下这三个函数 我的代码: public bool CheckIfUnreadMessagesArePresent(i

要求实现我的功能以访问数据库,并执行某些操作。 例如: 1) 检查或阅读信息。 2) 按日期检查和发布用户之间的所有通信。 3) 查找所有用户的最新帖子。 但是我认为教程中有一些内容我不知道怎么做。我能给你看的一切。因此,我想请你们看看我的代码,看看上面有什么,并帮助我。您不需要完全编写代码。如果你不难放下袖子冷静地给出例子,让我在LINQ和EntityFramework上写下这三个函数

我的代码:

   public bool CheckIfUnreadMessagesArePresent(int userId)
    {
        IList<MessageInfo> messageInfo = new List<MessageInfo>();
        MessageInfo messageIn = new MessageInfo();

        var sql = @"SELECT * FROM MessageInfo
        WHERE wasRead = 0 AND Id = @userId ORDER BY  date DESC";
        var meassage = dataBaseContext.Database.SqlQuery<MessageInfo>(sql, new { userId = messageIn.Id });
        return messageInfo.Any(messageIn.WasRead == true);

    }

    public IList<UserInfo> FetchMessagesFromConversation(int userID1, int userID2)
    {
        IList<UserInfo> messageInfo = new List<UserInfo>();
        MessageInfo messageIn = new MessageInfo();

        var sql = @"SELECT * FROM MessageInfo
        WHERE userID1 = 1 AND userID2 = 3 OR userID1 = 3 AND userID2 = 1 order by date DESC";
        var meassage = dataBaseContext.Database.SqlQuery<MessageInfo>(sql, new { userID1 = messageIn.SenderId,userID2 = messageIn.ReceiverId});
        messageInfo.Insert(message);
        return messageInfo;
    }

    public IList<MessageInfo> FetchLastMessageFromEachConversation((int userID))
    {
        IList<UserInfo> messageInfo = new List<UserInfo>();
        MessageInfo messageIn = new MessageInfo();

        var sql = @"SELECT * FROM MessageInfo
        WHERE date IN (@SELECT max(date)
        FROM MessageInfo WHRERE date IN (
        SELECT max(date)
        FROM MessageInfo
        GROUP BY messageIn.ID, messageIn.ReceiverId
        ORDER BY date DESC, messageIn.ID, messageIn.ReceiverId) 
        GROUP BY if (messageIn.ID < messageIn.ReceiverId,
        concat(messageIn.ID, " - ", messageIn.ReceiverId), concat(messageIn.ReceiverId, " - ", messageIn.ID)))";
        var meassage = dataBaseContext.Database.SqlQuery<MessageInfo>(sql, new { userID1 = messageIn.SenderId, userID2 = messageIn.ReceiverId });
        return messageInfo;
    }
    CREATE TABLE [dbo].[UserInfo](
[Id] [int] IDENTITY(1,1) PRIMARY KEY NOT NULL,
[Login] [varchar](50) NOT NULL,
[Password] [varchar](50) NOT NULL,
[FirstName] [nchar](10) NOT NULL,
[LastName] [nchar](10) NOT NULL,
[Email] [varchar](50) NOT NULL,
[RegistrationDate] [datetime] NOT NULL,
    )
    GO

    CREATE TABLE [dbo].[Messages](
[Id] [int] IDENTITY(1,1) PRIMARY KEY NOT NULL,
[SenderId] [int] NOT NULL,
    [ReceiverId] [int] NOT NULL,
[Message] [varchar](500) NOT NULL,
[date] [datetime] NOT NULL,
[WasRead][bit] NOT NULL
    CONSTRAINT FK_UserInfoSender FOREIGN KEY (SenderId)
REFERENCES [UserInfo](Id),
    CONSTRAINT FK_UserInfoReceiver FOREIGN KEY (ReceiverId)
REFERENCES [UserInfo](Id)
    )
    GO